根据微软的说法:“在 Visual Basic 6.0 中,当 CheckBox 状态以编程方式更改时会引发 Click 事件。”这正是我不想要的。
我希望单击事件仅在我单击复选框时引发,而不是在状态更改时引发。
知道怎么做吗?
谢谢
根据微软的说法:“在 Visual Basic 6.0 中,当 CheckBox 状态以编程方式更改时会引发 Click 事件。”这正是我不想要的。
我希望单击事件仅在我单击复选框时引发,而不是在状态更改时引发。
知道怎么做吗?
谢谢
您可以在从代码填充表单时设置一个标志以忽略更改。如果代码组织得不好,这可能会变得混乱。
表格级别:
Public IgnoreChange As Boolean
表单加载:
IgnoreChange = False
事件:
If IgnoreChange Then Exit Sub
你的代码:
frmReference.IgnoreChange = True
frmReference.Checkbox1.Checked = True
frmReference.IgnoreChange = False
代码应该只响应用户操作
不确定这是否是最好的方法,但一种方法是使用一个名为 IgnoreEvents 之类的变量,并在以编程方式更改状态之前将其设置为 true。然后在事件处理程序中,如果该变量为真,您只需退出事件处理程序而不做任何事情。
而是将您的Click
事件代码放入事件中MouseDown
。不过,您必须手动设置检查状态:
Private Sub Check1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Check1.Value = IIf(Check1.Value = vbChecked, vbUnchecked, vbChecked)
' run other necessary code here
End Sub