0

有没有办法在不触发 selectedIndexchanged 事件的情况下设置 tabControl 的选定选项卡?

例如这里选择 myTabPage2 时触发事件,因为 myTabPage1 是默认值:

Private Sub setupTabControl
    If blnHasAccount=true then
       MyTabControl.selectedTab=myTabPage1
    else
       MyTabControl.selectedTab=myTabPage2
    End if
End sub

Private Sub MyTabControl_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyTabControl.SelectedIndexChanged
    'Do stuff (but only when user has actually changed the tab themselves)
End Sub
4

2 回答 2

1

当您设置新标签页时,您可以删除事件处理程序

Try
    RemoveHandler MyTabControl.SelectedIndexChanged, AddressOf Me.MyTabControl_SelectedIndexChanged
    .. do your works to change page here
    .. and then reconnect
Finally
    AddHandler MyTabControl.SelectedIndexChanged, AddressOf Me.MyTabControl_SelectedIndexChanged
End Try

将所有内容包含在 Try finally 中以从异常中正确恢复非常重要

于 2012-04-26T11:12:20.150 回答
-2

可以伪造并检查 ComboBox.Enabled 作为在 SelectedIndexChanged 事件中使用的标志,同时进行更改,然后在完成后设置回 true。但是,此类事件仍会触发(应该吗?),但至少您可以确保全局“组合框”变量的状态。

于 2016-08-21T20:19:41.243 回答