VB.Net中每个控件数组上的事件

VB.Net中每个控件数组上的事件,vb.net,Vb.net,如何检测我是否单击了哪个按钮?我只想禁用我单击的按钮或更改其属性。试试看 Private Sub cbtns_ClickButtonArea(ByVal Sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles cbtn_a.ClickButtonArea, cbtn_b.ClickButtonArea, cbtn_c.ClickButtonArea, cbtn_d.ClickButtonAr

如何检测我是否单击了哪个按钮?我只想禁用我单击的按钮或更改其属性。

试试看

Private Sub cbtns_ClickButtonArea(ByVal Sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles cbtn_a.ClickButtonArea, cbtn_b.ClickButtonArea, cbtn_c.ClickButtonArea, cbtn_d.ClickButtonArea
    Dim cbtn As CButtonLib.CButton() = {cbtn_a, cbtn_b, cbtn_c, cbtn_d}        

    For Each cb As CButtonLib.CButton In cbtn
        cb.Enabled = True
    Next        
End Sub

禁用已单击的按钮。

未为类型“System、Windows.Forms.button”和“Object”定义运算符“=”。这就是您得到的错误?我已将强制转换更改为
CButtonLib.CButton
,尝试此操作仍会收到此错误。。没有为类型“CButtonLib.CButton”和“CButtonLib.CButton”定义错误运算符“=”。无论如何,我在这里得到了这个自定义按钮。。好的,我修正了密码。当我将事件放置在CButton上时,必须使用
Is
来比较这两个对象not
=
。。CButton中的这一行突出显示并显示警告。。如果MouseDrawState=eMouseDrawState,则Private Sub CButton_MouseUp(ByVal sender作为对象,ByVal e作为System.Windows.Forms.MouseEventArgs)处理Me.MouseUp。如果MouseDrawState=eMouseDrawState.eMouseDrawState=eMouseDrawState.Up Me.Invalidate(Rectangle.Round(ButtonArea))End Sub
CType(Sender, Button).Enabled = False
Private Sub cbtns_ClickButtonArea(ByVal Sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles cbtn_a.ClickButtonArea, cbtn_b.ClickButtonArea, cbtn_c.ClickButtonArea, cbtn_d.ClickButtonArea
    Dim cbtn As CButtonLib.CButton() = {cbtn_a, cbtn_b, cbtn_c, cbtn_d}        
    Dim clickedBtn As CButtonLib.CButton = DirectCast(sender, CButtonLib.CButton)

    For Each cb As CButtonLib.CButton In cbtn
        If cb Is clickedBtn Then
            cb.Enabled = False
        Else
            cb.Enabled = True
        End If
    Next        
End Sub