1

当组合框中的索引更改时,我会触发 SelectedIndexChanged 事件。

我从计时器中的代码调用它,用户在选择选项时调用它。

我无法弄清楚如何判断是导致此事件触发的用户操作还是其他事件。

我在我的计时器中尝试了一个标志,它确实有效,但我正在寻找一个更开放的解决方案,这将是更多的未来证明。

4

2 回答 2

1

我通过添加事件 selectionchangecommitted 解决了这个问题

Private Sub cboGraphType_SelectionChangeCommitted(sender As Object, e As EventArgs) Handles cboGraphType.SelectionChangeCommitted
    startStopTimer(True)
End Sub

然后这会停止计时器,然后在此之后仍会触发 selectionchanged 事件。

但是这个事件停止了我的计时器,这就是我想要的。

于 2013-08-01T13:58:35.167 回答
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
于 2013-07-30T08:56:35.160 回答