WinForms ComboBox上的Fire验证事件

时间:2013-06-05 17:37:05

标签: vb.net winforms events

我在组合框上的Validated事件中处理了一些逻辑,但希望在选择完成后立即触发。我可以单独处理SelectedIndexChanged事件以触发事件,但我不确定如何调用它。

Private Sub ComboSelectedIndexChanged(sender As System.Object, e As System.EventArgs) _
    Handles ComboBox1.SelectedIndexChanged
    'Fire Validated Event
End Sub

Private Sub ComboValidated(sender As System.Object, e As System.EventArgs) _
    Handles ComboBox1.Validated
    'Do Something Here
End Sub

我宁愿不直接调用处理验证事件的方法,

ComboValidated(Nothing, Nothing)

因为它不正是我正在尝试使用代码而它会再次运行,而事实上经过验证的事件实际上会在失去焦点时触发。

我可以执行哪些代码来触发已验证的事件(通过直接触发事件或使控件失去焦点)?

2 个答案:

答案 0 :(得分:1)

你为什么不把它作为Sub ..

Private Sub ComboValidated(sender As System.Object, e As System.EventArgs) _
    Handles ComboBox1.Validated

    InCBValidated()

End Sub

Sub InCBValidated()

    'Do Something Here

End Sub

所以你只需致电InCBValidated()

答案 1 :(得分:0)

我通过使控件失去焦点然后解除了所有必要的事件来解决这个问题。控件恰好位于一个分组框中,因此删除焦点的最简单方法就是给予该控件焦点,以便仍然选择页面上相同的位置

Private Sub ComboSelectedIndexChanged(sender As System.Object, e As System.EventArgs) _
    Handles ComboBox1.SelectedIndexChanged
    If ComboBox1.Focused Then GroupBox1.Focus()
End Sub