如何测试在VB.net TabControl中选择哪个选项卡

时间:2009-09-24 14:30:12

标签: .net vb.net tabcontrol

我有一个带有两个TabPages的TabControl,我想知道测试当前显示哪个选项卡的最佳方法是什么?我不知道为什么我不能解决这个......

12 个答案:

答案 0 :(得分:20)

答案 1 :(得分:9)

使用该标签的“输入事件” 例如

   Private Sub TabName_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabName.Enter
        MsgBox("me the tab selected")
         'or do whattever u like
    End Sub

答案 2 :(得分:5)

Private Sub TabControl_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl.SelectedIndexChanged
    If TabControl.SelectedTab Is tabMyTab Then
        ' do whatever...
    End If
End Sub

答案 3 :(得分:4)

TabControl.SelectedTab.

这是the link

答案 4 :(得分:2)

如果你使用.Net 3.5,你可以根据需要创建一个IsSelected方法作为扩展方法:

Public Module TabControlExtensions
    <Extension()> _
    Public Function IsSelected(ByVal tabPage As TabPage) As Boolean
        Dim tabControl = CType(tabPage.Parent, TabControl)
        Return (tabControl.SelectedTab Is tabPage)
    End Function
End Module

答案 5 :(得分:1)

假设这是一个WPF应用程序,请确保每个TabItem都有一个名称。

然后这只是检查的问题。

if tabItem1.IsSelected = true then
  ' Do Something 
else if tabItem2.IsSelected = true then
  ' Do Something 
end if 

答案 6 :(得分:1)

尝试使用TabPages集合编辑器为每个单独的选项卡设置“TAG”属性。将每个标记设置为表示Tab序列的数字(从1或0开始或适合的任何其他)

Private Sub TabControl1_Click(sender As Object, e As System.EventArgs) Handles TabControl1.Click

    Dim ActiveTabNumber as Integer = TabControl1.SelectedTab.Tag

End Sub

答案 7 :(得分:1)

我有一个名为tcMode的TabControl,成员/项分别为tcmRelease和tcmSwitch,以下选项对我来说很不错,能够随意移动/重命名这些选项卡;

If tcMode.SelectedTab Is tcmRelease Then
      'Do Something if first tab selected
ElseIf tcMode.SelectedTab Is tcmSwitch Then
      'Do something if second tab selected
End If

Image of Tab Control Members

答案 8 :(得分:0)

还可以执行以下操作:

Dim TabName As String

TabName = YourTabControl.SelectedTab.Name

If TabName.Contains("YourTabName") Then
    ' Do something
End If

答案 9 :(得分:0)

试试这个..

这是如何在选中时修改每个选项卡 然后会有每个标签的功能

一级评分|二级评分|

Private Sub TabControlAction(ByVal sender As Object, ByVal e As System.EventArgs) Handles nameoftab.Click

        If nameoftab.SelectedTab.Text = "Second Grading" Then
            Msgbox("Second Grading is Selected")
''Place whatever your want

        Else
            Msgbox("First Grading is Selected")
''Place whatever your want
        End If

    End Sub

你可以使用if elseif else语句。

这个发现适合我。

答案 10 :(得分:0)

TabControl1_Click:
    If TabControl1.SelectedIndex = 0 Then
        ' Do Something       
    ElseIf TabControl1.SelectedIndex = 1 Then
        ' Do Something 
    End If
End Sub

答案 11 :(得分:0)

此代码将显示当前选定的标签页名称

 Private Sub Tab_new1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Tab_new1.SelectedIndexChanged
        MsgBox(Tab_new1.SelectedTab.Name)
    End Sub