当组合框中的索引发生变化时,我会触发SelectedIndexChanged事件。
我从计时器中的代码中调用它, 并且用户在选择选项时调用它。
我无法弄清楚如何判断是否是导致此事件触发的用户操作或其他事件。
我在我的计时器中尝试了一个标志,这确实有效,但我正在寻找一个更开放的解决方案,这将是未来的证据。
答案 0 :(得分:1)
我通过添加event selectionchangecommitted来解决这个问题
Private Sub cboGraphType_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles cboGraphType.SelectionChangeCommitted
startStopTimer(True)
End Sub
然后停止计时器,然后在此之后仍然会触发selectionchanged事件。
但是这个事件会停止我的计时器,这就是我想要的。
答案 1 :(得分:0)
关于使用任何旗帜......
Dim ByWhat As String
Private Sub timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timer1.Tick
ByWhat = "TIMER1"
MyJob()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
ByWhat = "COMBOBOX1"
MyJob()
End Sub
Sub MyJob()
Select Case ByWhat
Case "TIMER1"
'code if called by timer1
Case "COMBOBOX1"
'code if called by combobox1
End Select
ByWhat = "" '---->Clear it
End Sub