Получить обработку события изменения всех textbox`ов

Программирование на Visual Basic for Applications
ahilesul
Начинающий
Начинающий
 
Сообщения: 21
Зарегистрирован: 18.02.2011 (Пт) 11:03

Получить обработку события изменения всех textbox`ов

Сообщение ahilesul » 18.02.2011 (Пт) 11:13

Есть форма в vba эксель, на ней куча текстбоксов - штук 100, при изменении значения текстбокса - нужно пересичитывать всю сумму.
Код: Выделить всё
Private Sub TextBox45_Change()
код обработчика
End Sub


можно ли как-то получать какое-то событие при изменении любого текстбокса на форме? чтоб не писать такой код обработки изменения для всех 100 текстбоксов

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

Re: Получить обработку события изменения всех textbox`ов

Сообщение Денис » 18.02.2011 (Пт) 11:55

Опрашивать в цикле me.controls как вариант. Вообще вариантов много и все, скажем так, нестандартные, с разными степенями кривизны.
Самый идеологически верный способ, это вместо кода обработчика 100 раз поставить вызов процедуры с обработчиком, причем, ссылка на текстбокс передается параметром, напр. Sender.
Код: Выделить всё
Private Sub TextBox45_Change()
{Call} CommonTextBox_Change(TextBox45)
End Sub

Private Sub CommonTextBox_Change(Sender as TextBox)
{код обработчика}
End Sub
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Re: Получить обработку события изменения всех textbox`ов

Сообщение Димитрий » 24.02.2011 (Чт) 13:16

Вообще то, при большом количестве однотипных контролов лучше создать массив.
Вложения
massTXT.rar
два примера
(23.73 Кб) Скачиваний: 247


Вернуться в VBA

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 45

    TopList