取消VB.NET中的TabControl选项卡选择

Tom*_*Tom 4 vb.net winforms

真的让我的大脑陷入困境,我确信这很简单,我很想念.

基本上我有一个带有两个标签的表单.我正在检查每个选项卡上的控件,看它们是否脏,并且如果当前选项卡上有更改,则希望阻止用户单击选项卡.

我曾经想过,如果我检查脏变量并将选项卡索引设置为未被选中的那个我就没事了但是每次我以编程方式设置选项卡的属性时,它会触发一大堆选项卡的事件产生不希望的结果,例如显示正确的控制集但选择了错误的选项卡.

这是我尽可能接近它的代码.

Private Sub objTabs_Selected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles objTabs.Selected
    If bIsDirty Then
        If Me.objTabs.SelectedIndex = 1 Then
            Me.objTabs.SelectedTab = tabLetterofCreditBanks
            Me.objTabs.SelectTab(0)
        Else
            Me.objTabs.SelectedTab = tabWireTransferBanks
            Me.objTabs.SelectTab(1)
        End If
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

提前致谢.

And*_*are 7

尝试使用Selecting事件而不是Selected事件 - 这将使您有机会覆盖用户的行为(即设置TabControlCancelEventArgs.CancelTrue).