2009-09-24 32 views

Trả lời

1

Giả sử đây là một ứng dụng WPF, đảm bảo rằng mỗi TabItem có một Name.

Sau đó, đó chỉ là vấn đề kiểm tra.

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

Yeah, đây là cách tôi đã tìm cách để làm điều đó nhưng không có các thành viên gọi là IsSelected hoặc chọn , Tôi đoán bạn phải sử dụng SelectedTab, kinda xấu xí nhưng nó hoạt động. –

+1

làm một chút lokoing vào này, rõ ràng là IsSelected chỉ có sẵn cho lớp WPF TabItem. WinForms không hỗ trợ thuộc tính IsSelected. –

2

Nếu bạn sử dụng Net 3.5, bạn có thể tạo ra một phương pháp IsSelected như một phương pháp mở rộng nếu bạn muốn:

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

Đã làm việc cho tôi để kiểm soát sự kiện biểu mẫu đóng! – fedeteka

0

cũng có thể làm như sau:

Dim TabName As String 

TabName = YourTabControl.SelectedTab.Name 

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

sử dụng mà của tab "ENTER EVENT" ví dụ:

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

Hãy thử này ..

đây là làm thế nào để sửa đổi mỗi tab khi chọn sau đó sẽ có một chức năng của mỗi tab

Đầu tiên chấm điểm | Second Grading |

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 

Bạn có thể sử dụng nếu có tuyên bố khác mặc dù.

tìm kiếm này phù hợp với tôi.

1

Thử đặt nguyên tắc "TAG" cho mỗi tab riêng lẻ bằng cách sử dụng trình chỉnh sửa bộ sưu tập TabPages. Đặt mỗi thẻ để một số đại diện cho chuỗi Tab (bắt đầu lúc 1 hoặc 0 hoặc bất cứ điều gì cho phù hợp)

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

Xin chào và chào mừng bạn đến với Stack overflow! Trông giống như một câu trả lời tuyệt vời và hy vọng nó giải quyết vấn đề OPs độc đáo (Tôi không biết, tôi không phải là lập trình viên VB) ... Tôi chỉ nghĩ rằng tôi nên nói rằng nó thường là tốt nhất để mở rộng câu trả lời của bạn và giải thích như thế nào/tại sao nó giải quyết vấn đề. Chúng tôi có rất nhiều người mới hoặc những người như tôi giỏi lập trình, nhưng không phải bằng ngôn ngữ này ... và một chút giải thích có thể giúp chúng tôi hiểu rõ hơn về đoạn mã của bạn và tìm hiểu điều gì đó từ bạn. –