CheckBox checkkedchanged事件为所有复选框?



是否可以对所有复选框使用事件?我有两个复选框,当我激活一个时,另一个被停用。这是一个循环。当我试图取消激活一个复选框时,取消激活的复选框的CheckedChanged被调用并生成一个循环错误

Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged

Dim da As MySqlDataAdapter
Dim dt As DataTable
If CheckBox1.Checked = True Then
CheckBox2.CheckState = CheckState.Unchecked
Openconnection()
da = New MySqlDataAdapter("SELECT * FROM User WHERE " & Cbx_Filter.Text & " LIKE'" & Txt_Filter.Text & "%' and Stats = 'OK'", Connections)
Else
If CheckBox2.Checked = False Then
Openconnection()
da = New MySqlDataAdapter("SELECT * FROM User WHERE " & Cbx_Filter.Text & " LIKE'" & Txt_Filter.Text & "%'", Connections)
End If
End If
dt = New DataTable
da.Fill(dt)
DataGridView1.Columns.Clear()
DataGridView1.DataSource = dt
Connections.Close()
da.Dispose()

和checkbox2

Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
Dim da As MySqlDataAdapter
Dim dt As DataTable
If CheckBox2.Checked = True Then
CheckBox1.CheckState = CheckState.Unchecked
Openconnection()
da = New MySqlDataAdapter("SELECT * FROM User WHERE " & Cbx_Filter.Text & " LIKE'" & Txt_Filter.Text & "%' and Stats = ''", Connections)
Else
If CheckBox1.Checked = False Then
Openconnection()
da = New MySqlDataAdapter("SELECT * FROM User WHERE " & Cbx_Filter.Text & " LIKE'" & Txt_Filter.Text & "%'", Connections)
End If
End If
dt = New DataTable
da.Fill(dt)
DataGridView1.Columns.Clear()
DataGridView1.DataSource = dt
Connections.Close()
da.Dispose()
End Sub

这很简单。只需用一个过程处理两个事件:

Private Sub CheckBoxes_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged

然后你必须编码差异,但你可以测试发送者:

Dim Chk As CheckBox = DirectCast(sender, CheckBox)
If Chk Is CheckBox1 then
' Do the stuff for CheckBox1
Else
' Do the stuff for CheckBox2
End If    

大小写选项为:

1 -没有人被选中2 - 2个选择中的1个

与RadioCheckBox,我不能取消选择后的单选与复选框我有一个循环问题(我需要取消选中另一个)

最新更新