将参数传递给Vba中的事件处理程序
问题描述:
我需要将参数(ref或val无关紧要)传递给与运行时生成的控件(复选框)关联的事件。我似乎无法找到办法。 (我不得不承认,我甚至尝试了一些肮脏的公开声明......无济于事) 而在另一张纸条上,我如何从事件中访问控件的属性?将参数传递给Vba中的事件处理程序
的部分在哪里产生的复选框:
For Each distinctClientList In Range("DA3:DA" & LastRow).Cells
Dim MaTextBox As Object
Set MaTextBox = Client_picking.Controls.Add("Forms.TextBox.1")
With MaTextBox
.Text = CStr(distinctClientList.Value)
.Left = 20
.top = topref + (20 * Client_picking.i)
.Width = 90:
.Height = 20
End With
Dim MaCheckBoxfile As Object
Set MaCheckBoxfile = Client_picking.Controls.Add("Forms.CheckBox.1")
With MaCheckBoxfile
.Caption = "fichier"
.Left = 140
.top = topref + (20 * Client_picking.i)
End With
ReDim Preserve ButArray(1 To Client_picking.i)
Set ButArray(Client_picking.i).butEvents() = MaCheckBoxfile
Client_picking.i = Client_picking.i + 1
Next
我处理
Public WithEvents butEvents As MSForms.CheckBox
Private Sub butEvents_click()If Checked Then
MsgBox "checked" & /*This is where i would put my parameter... IF I HAD ONE!*/
End If
末次
答
控制分配的类名为butEvents这样你就可以访问变量其所有属性通过它:
butEvents.BackColor = vbRed
参数是什么?你可以在课堂上使用一个属性吗? –
您也可以在将类添加到数组时传入对象,比如说用一个用户窗体,传入一个对父对象的引用,用户窗体? –
Thx的小费我会尝试那些。我希望我能够完成一项工作。 –