'da hangi sekmenin seçili olduğu test edilir TabTages iki TabPage'im var ve şu anda hangi sekmenin görüntülendiğini test etmenin en iyi yolunun ne olduğunu merak ediyordum? Ben bunu anlayamıyorum neden bu bir WPF uygulaması varsayarsakVB.net TabControl
cevap
, her TabItem bir adı olduğundan emin olun ... emin değilim.
O zaman sadece bir kontrol meselesi.
if tabItem1.IsSelected = true then
' Do Something
else if tabItem2.IsSelected = true then
' Do Something
end if
TabControl.SelectedTab.
İşte the link bu. Eğer .NET 3.5 kullanıyorsanız dilerseniz
, bir uzantı yöntemi olarak IsSelected yöntemi oluşturabilirsiniz:
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
Yakın form etkinliğini kontrol etmek için çalıştım! – fedeteka
ayrıca aşağıdaki yapabilir:
Dim TabName As String
TabName = YourTabControl.SelectedTab.Name
If TabName.Contains("YourTabName") Then
' Do something
End If
kullanımını o sekmenin "GÜNCEL OLMASI" örn. İkinci Not Verme |
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
bu sonra her sekmede
Birinci Not Verme bir fonksiyonu olacaktır seçildiğinde sekmenin her nasıl değiştirileceğini olan
.. Bu deneyin |
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
Gerçi eğer elseif başka deyimi kullanabilirsiniz. Bu bulmacanın benim için çalıştığı
.
TabPages koleksiyonu düzenleyicisini kullanarak her bir sekme için "TAG" parçacığını ayarlamayı deneyin. Sekme sırasını temsil eden bir sayıya her bir etiketi ayarlayın
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
Merhaba ve Yığın taşmasına hoş geldiniz! Harika bir cevap gibi görünüyor ve umarım OP'lerin problemini iyi çözer (Bilmiyorum, bir VB programcısı değilim) ... Sadece cevabınızı genişletmek ve nasıl olduğunu açıklamak için en iyisinin olduğunu söylemeliyim. Neden bu sorunu çözüyor. Çok fazla yeni programımız var - ya da benim gibi programlamada mükemmel olan insanlar, ama bu dilde değil ... ve biraz açıklama, kod snippet'inizi daha iyi anlamamıza ve sizden bir şey öğrenmemize yardımcı olabilir. –
Evet, bu bunu yapmak için nasıl endam nasıl olduğunu ancak hiçbir üye IsSelected denilen veya Seçili var (1 veya 0 ya da her türlü başlayan uyacak şekilde) Sanırım SelectedTab'ı kullanmak zorundasın, çok çirkin ama işe yarıyor. –
bunu biraz daha lokoing yapıyor, görünüşe göre IsSelected sadece WPF TabItem sınıfı için kullanılabilir. WinForms biri IsSelected özelliğini desteklemiyor. –