2010-09-17 121 views
4

真的让我的大脑在这里受挫,我确信这是我错过的简单东西。在VB.NET中取消TabControl标签选择

基本上我有一个有两个选项卡的表单。我正在检查每个选项卡上的控件,看看它们是否脏,并且希望防止用户在当前选项卡上发生更改时单击选项卡。

我曾经想过,如果我检查脏变量,只是设置选项卡索引,没有被选中我会很好,但每次我编程设置一个选项卡的属性,它引发了一堆标签的事件只会产生不合意的结果,如正确的控件集显示,但选择了错误的标签。

下面是代码为尽可能接近我得到它的工作。

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 

在此先感谢。

回答

6

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

+0

不错,我知道它必须是简单的东西,我失踪了。谢谢。 – Tom 2010-09-17 15:01:59