2009-09-24 26 views
8

'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

1

, 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 
+1

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. –

+1

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. –

4
TabControl.SelectedTab. 

İşte the link bu. Eğer .NET 3.5 kullanıyorsanız dilerseniz

2

, 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 
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

Yakın form etkinliğini kontrol etmek için çalıştım! – fedeteka

0

ayrıca aşağıdaki yapabilir:

Dim TabName As String 

TabName = YourTabControl.SelectedTab.Name 

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

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 
0

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ığı

.

1

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 
0
TabControl1_Click: 
    If TabControl1.SelectedIndex = 0 Then 
     ' Do Something  
    ElseIf TabControl1.SelectedIndex = 1 Then 
     ' Do Something 
    End If 
End Sub 
+2

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. –