Работа с несколькими Text Box

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
shurik58
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 12.03.2008 (Ср) 17:17

Работа с несколькими Text Box

Сообщение shurik58 » 12.08.2009 (Ср) 10:43

Вопрос вот в чем.
На форме имеется десяток Text Box с разными наименованиями(не индексированы). Поцедура обработки хххTxt_Change одинаковая для всех полей, за исключением изменяемых переменных. Можно ли все процедуры обеденить в одну, изменять переменные в зависимости от наименования выбранного текстового поля.
Копировать 10 процедур как-то не красиво. Индексирование полей не приемлемо.
Помогите, плиз!
Спасибо.
Shurik.
Спасибо и успехов!

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: Работа с несколькими Text Box

Сообщение VBTerminator » 12.08.2009 (Ср) 11:36

Массив элементов управления?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Работа с несколькими Text Box

Сообщение alibek » 12.08.2009 (Ср) 11:39

Сделай одну процедуру, один из аргументов которой будет ссылкой на TextBox. А в обработчике вызывай эту процедуру.
Lasciate ogni speranza, voi ch'entrate.

shurik58
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 12.03.2008 (Ср) 17:17

Re: Работа с несколькими Text Box

Сообщение shurik58 » 12.08.2009 (Ср) 12:37

Нет. Не массив ЭУ.
Например txt1, txt2,.....txt10.
А как в процедуре сделать ссылку на конкретное txt1?
При получении фокуса надо подкрасить поле, при изменении информации - изменить переменную.
Не хочется 10 поцедур txt1_GotFocus - txt10_GotFocus и Txt1_Change - Txt10_Change!!?
Спасибо.
Спасибо и успехов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с несколькими Text Box

Сообщение Хакер » 12.08.2009 (Ср) 12:57

Положи TB в UC, в UC обработай событие TB и вызови у контейнера нужный метод.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

shurik58
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 12.03.2008 (Ср) 17:17

Re: Работа с несколькими Text Box

Сообщение shurik58 » 12.08.2009 (Ср) 13:28

А можно проще?
Я же тупой! Что такое UC?
Спасибо и успехов!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с несколькими Text Box

Сообщение Хакер » 12.08.2009 (Ср) 13:29

UserControl.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Работа с несколькими Text Box

Сообщение Денис » 13.08.2009 (Чт) 8:49

Делай раз
Код: Выделить всё
Private Sub SetTBBG(Sender As Object, Color As Long)
    Sender.BackColor = Color
End Sub

Делай два
Код: Выделить всё
Private Sub text1_GotFocus()
    SetTBBG text1, vbHighlight
End Sub

Private Sub text1_LostFocus()
    SetTBBG text1, vbWindowBackground
End Sub
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Работа с несколькими Text Box

Сообщение Хакер » 13.08.2009 (Чт) 8:59

Денис, ты не находишь, что SetTBBG XYZ, vbHighlight принципиально ничем не отличается от ZYX.BackColor = vbHighlight? То есть ты только усложил всё.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Работа с несколькими Text Box

Сообщение Денис » 13.08.2009 (Чт) 9:49

Хакер писал(а):Денис, ты не находишь, что SetTBBG XYZ, vbHighlight принципиально ничем не отличается от ZYX.BackColor = vbHighlight? То есть ты только усложил всё.

А если помимо ZYX.BackColor = vbHighlight в SetTBBG() будет еще 100 строк кода, включая конструкции for...next, if...then, тогда как, усложнил? 8)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, SemrushBot и гости: 91

    TopList