如何判断用户是否导致selectedindexchanged

时间:2013-07-30 07:47:10

标签: vb.net combobox

当组合框中的索引发生变化时,我会触发SelectedIndexChanged事件。

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

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

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

2 个答案:

答案 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