2009-09-24 5 views

Odpowiedz

1

Zakładając, że jest to aplikacja WPF, upewnij się, że każdy TabItem ma nazwę.

To tylko kwestia sprawdzenia.

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

Tak, tak właśnie było dowiedzieć, jak to zrobić, ale nie ma członków nazywa IsSelected lub wybranych , Myślę, że musisz użyć SelectedTab, trochę brzydko, ale to działa. –

+1

robi trochę więcej lokoing w tym, najwyraźniej IsSelected jest dostępny tylko dla klasy WPI TabItem. WinForms nie obsługuje właściwości IsSelected. –

2

Jeśli używasz .NET 3.5 można utworzyć metodę IsSelected jako metodę rozszerzenia, jeśli chcesz:

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
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 
+0

Pracowałem dla mnie, aby kontrolować wydarzenie w formie zamkniętej! – fedeteka

0

można również wykonać następujące czynności:

Dim TabName As String 

TabName = YourTabControl.SelectedTab.Name 

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

że wykorzystanie zakładka "ENTER EVENT" np.

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 
0

Try This ..

to jak zmodyfikować każdej zakładce gdy wybrany wtedy nie będzie funkcją każdej karcie

Pierwszy Grading | Druga Klasa |

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 

Możesz użyć instrukcji else else else.

to znalezisko działa dla mnie.

1

Spróbuj ustawić propozycję "TAG" dla każdej pojedynczej karty za pomocą edytora kolekcji TabPages. Ustaw każdy tag do liczby reprezentującej sekwencję Tab (rozpoczynając od 1 lub 0 lub cokolwiek, aby dostosować)

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

    Dim ActiveTabNumber as Integer = TabControl1.SelectedTab.Tag 

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

Witam i zapraszam do przepełnienia stosu! Wygląda na świetną odpowiedź i mam nadzieję, że dobrze rozwiązuje problem OP (nie wiem, nie jestem programistą VB) ... Pomyślałem, że powinienem powiedzieć, że często najlepiej jest rozwinąć swoją odpowiedź i wyjaśnić, jak/dlaczego rozwiązuje problem. Dostajemy wielu początkujących - lub ludzi takich jak ja, którzy świetnie sobie radzą z programowaniem, ale nie w tym języku ... a wyjaśnienie może pomóc nam lepiej zrozumieć fragment kodu i nauczyć się czegoś od ciebie. –