powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Примитивная задачка с длиииинннным кодом
12 сообщений из 12, страница 1 из 1
Примитивная задачка с длиииинннным кодом
    #33467682
Morkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потихоньку перебралась на этот форум и начинаю терроризировать всех вас вопросами..

Дело такое - есть форма и на ней - штук 50 текстбоксов с именами от TEXT0 до TEXT50. Если мне надо чтоб у боксов от 1 до 50 был такой-же стиль шрифта как у text0, неужели надо писать 50 строк типа
SET TEXT1.font=TEXT0.font
SET TEXT2.font=TEXT0.font


и тд... как это можно сделать покороче?
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33467700
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где-то так:
Код: plaintext
1.
2.
For Each c In Me.Controls
    If TypeOf c Is TextBox And Left$(c.Name,  4 ) = "TEXT" Then Set c.Font = TEXT0.Font
Next
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33468100
Morkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если не ошибаюсь, "с" - As Object ?

что-то не выходит... и не выходит сообщение об ошибке.... так-так-так. думаем.... :-)
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33468198
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?
Код: plaintext
1.
2.
For Each c In Me.Controls
    If TypeOf c Is TextBox And UCase(Left$(c.Name,  4 )) = "TEXT" Then Set c.Font = Text0.Font
Next
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33468242
tosha1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я б рекомендовал использовать не Text0, Text1, Text2 и т.д., а просто массив контролов, т.е. обозвать их все txtText, а вот индексы уже давать 0,1, 2 и т.д., и тогда будет оченнь просто обрабатывать их в цикле...
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33468326
Morkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tosha1983, не пойдет, у каждого текстбокса свои on click есть, разные. Так что как массив, не прокатит.

Вариант Andrew тоже не проходит. Думаем, думаем....
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33468339
Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прииатачил рабочий семпл.
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33468347
Borya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Morkovkatosha1983, не пойдет, у каждого текстбокса свои on click есть, разные. Так что как массив, не прокатит.
Почему не прокатит?
Например
Код: plaintext
1.
2.
3.
Private Sub Text1_Change(Index As Integer)
   ...
End Sub
?
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33468389
Morkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Borya7 Morkovkatosha1983, не пойдет, у каждого текстбокса свои on click есть, разные. Так что как массив, не прокатит.
Почему не прокатит?
Например
Код: plaintext
1.
2.
3.
Private Sub Text1_Change(Index As Integer)
   ...
End Sub
?

И правда!! Так тоже можно. Эх, после 5 лет разлуки с ВБ не всё сразу вспоминается....

Andrew, всё получилось как надо. Сэмпл посмотрела и сразу дошло что это я, морковная башка, в коде не там нарисовала end sub вместо exit sub. Вот и не было ни результата, ни сообщения об ошибке. Наверное извилины еще новый год празднуют... хе-хе-хе!....

Andrew, блин, пришли мне мешок семечек.... так охота!....

Всем спасибо!
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33469049
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема может быть если Option Explicit стоит
В таком случае надо так:
Код: plaintext
1.
2.
3.
   Dim c As Control
   For Each c In Me.Controls
      set c.Font = NewFont
   Next
А вообще, есть несколько вариантов решения задачи.
Например использовать какой-нибудь ActivX "сайзер". Обычно сайзеры поддерживают общий фонт.
Если ловить события как подсказал Borya7
Проход по текст-боксам можно сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Form_Load()
   Dim t As TextBox
   Dim NewFont As StdFont
   Set NewFont = New StdFont
   With NewFont
      .Name = "Times New Roman"
      .Size =  12 
   End With
   For Each t In Text1 'Проход только по TextBox-ам массива контролов
      Set t.Font = NewFont
   Next
End Sub
Ловить события можно и на рекордсете (если к нему привязываете текст-боксы) очень удобно получается.
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33469178
Morkovka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff, и так хорошо. Но вытекает следующий вопрос - как сгруппировать все текстбоксы от Text1 до Text50 в массив и сохранятся ли события написаные отдельно для некоторых боксов.

И дополнительно вопрос - у кого есть файл Хелпа по ВБ. Остро ощущается нехватка оного. Если есть, поделитесь плиз.
...
Рейтинг: 0 / 0
Примитивная задачка с длиииинннным кодом
    #33469212
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вычислить нужный текстбокс можно например по его свойству Tag.
Или по DataField
(даже если не используете DataField по назначению).
Я обычно группирую текстбоксы по Tag-ам, а в группе различаю по DataField.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Примитивная задачка с длиииинннным кодом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]