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

时间:2010-09-17 14:54:06

标签: 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

提前致谢。

1 个答案:

答案 0 :(得分:7)

尝试使用Selecting事件代替Selected事件 - 这将使您有机会覆盖用户的行为(即将TabControlCancelEventArgs.Cancel设置为True)。< / p>