Mam TabControl z dwiema kartami i zastanawiałem się, jaki jest najlepszy sposób przetestowania, która karta jest aktualnie wyświetlana? Nie jestem pewien, dlaczego ja nie mogę zrozumieć ten jeden ...Jak sprawdzić, która karta jest zaznaczona w VB.net TabControl
Odpowiedz
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
TabControl.SelectedTab.
Oto the link.
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
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
Pracowałem dla mnie, aby kontrolować wydarzenie w formie zamkniętej! – fedeteka
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
ż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
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.
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
TabControl1_Click:
If TabControl1.SelectedIndex = 0 Then
' Do Something
ElseIf TabControl1.SelectedIndex = 1 Then
' Do Something
End If
End Sub
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. –
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. –
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. –