当组合框中的索引更改时,我会触发 SelectedIndexChanged 事件。
我从计时器中的代码调用它,用户在选择选项时调用它。
我无法弄清楚如何判断是导致此事件触发的用户操作还是其他事件。
我在我的计时器中尝试了一个标志,它确实有效,但我正在寻找一个更开放的解决方案,这将是更多的未来证明。
我通过添加事件 selectionchangecommitted 解决了这个问题
Private Sub cboGraphType_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles cboGraphType.SelectionChangeCommitted
startStopTimer(True)
End Sub
然后这会停止计时器,然后在此之后仍会触发 selectionchanged 事件。
但是这个事件停止了我的计时器,这就是我想要的。
关于使用任何标志...
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