Тема: Какие процедуры обрабатывают события по нескольким элементам управления?

То есть можно ли создать такую процедуру, которая запускалась бы по событию, например, Change не для отдельного TextBoxа:
Private Sub TextBox1_Change()
...
End Sub
- а для всех TextBoxов, расположенных на форме?

Re: Какие процедуры обрабатывают события по нескольким элементам управления?

Можно написать одну процедуру, а запускать ее из каждого TextBox со своими параметрами.

Re: Какие процедуры обрабатывают события по нескольким элементам управления?

Массив TextBoxов будет обрабатывать изминения проходимые в любом их Text1(Index ) в одной процедуре

Private Sub Text1_Change(Index As Integer)
 'код
End Sub

Re: Какие процедуры обрабатывают события по нескольким элементам управления?

Что-то не получается. Создал массив:
Dim txt(7) As TextBox
Private Sub UserForm_Initialize()
Dim Q
For Each Q In UserForm1.Controls
     Set txt(Q.TabIndex) = Q
Next
End Sub
Добавил процедуру
Private Sub txt_Change(Index As Integer)
  MsgBox ("!!!!")
End Sub
Но что-то она не работает.

Re: Какие процедуры обрабатывают события по нескольким элементам управления?

Это проканает если писать на VB, если форма создается на VBA, то прейдется на собитии у каждого объекта визывать единую процедуру, VBA вроде не может работать с массивами элементов.

Re: Какие процедуры обрабатывают события по нескольким элементам управления?

Похоже на то. Массив-то создать не проблема, а вот вызвать одну процедуру по событию какого-либо из его членов VBA не желает.
А вот интересно, если Controlы создаются на форме во время выполнения программы и их число заранее неизвестно, как для них обрабатывать события?

Re: Какие процедуры обрабатывают события по нескольким элементам управления?

> AlexV
Можно воспользоваться в этом случае примером SmeL (2006-01-17 14:15:13) если на Vb делается это приблезительно так

 Load Text1(i)
 Text1(i).Top = Text1(i - 1).Top + 300
 Text1(i).Visible = True
Private Sub Text1_Change(Index As Integer)
  Select Case Index
   Case ...
  End Select
End Sub

Также можно делать API окна, и привязывать евенты

Re: Какие процедуры обрабатывают события по нескольким элементам управления?

Изменять-то свойства Control-ов можно, обращаясь к соответствующему члену массива; а вот для событий Change, Click и т.д. похоже нужна отдельная процедура, содержащая имя элемента управления, а не переменной, на него ссылающейся.
Ну да ладно, пойдем другим путем.