2016-08-22 229 views
1

我需要将参数(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 

末次

+0

参数是什么?你可以在课堂上使用一个属性吗? –

+0

您也可以在将类添加到数组时传入对象,比如说用一个用户窗体,传入一个对父对象的引用,用户窗体? –

+0

Thx的小费我会尝试那些。我希望我能够完成一项工作。 –

回答

1

控制分配的类名为butEvents这样你就可以访问变量其所有属性通过它:

butEvents.BackColor = vbRed 
相关问题