level 5
有个窗体,有四十多个按钮,假设每个按钮的点击事件都是,msgbox 他的caption,非得一个个写么。有没有简便的写一遍的方法。
2022年02月08日 17点02分
1
level 5
遍历按钮,具体写法我没做过。刚刚搜了一下,只找到遍历文本框,可以参考
2022年02月08日 23点02分
2
level 5
参 Me.Controls("TextBox"&i)=""
Me.OLEObjects("TextBox" & i).object.text= ""
2022年02月08日 23点02分
3
level 7
这种情况最好的方法是使用WithEvents
先做一个类模块,然后改好名字,在我的示例里面,我使用f_MSButt,里面的代码如下:
Public WithEvents m_Butt As MSForms.CommandButton
Private Sub m_Butt_Click()
MsgBox m_Butt.Caption
End Sub
然后在你的窗体中,输入以下代码:
Dim ButtonClick() As New f_MSButt
Private Sub UserForm_Initialize()
ReDim ButtonClick(1 To Me.Controls.Count)
Dim MsCon As MSForms.Control
Dim R1
For Each MsCon In Me.Controls
If MsCon.Name Like "CommandButton*" Then
R1 = R1 + 1
Set ButtonClick(R1).m_Butt = MsCon
End If
Next MsCon
End Sub
这样不管你点那个按钮,都会自动弹出对应caption的提示窗了。
2022年02月09日 03点02分
6