Tôi có TabControl với hai TabPages và tôi đã tự hỏi cách tốt nhất để kiểm tra tab nào hiện đang hiển thị? Tôi không chắc chắn lý do tại sao tôi không thể hình này ra ...Cách kiểm tra tab nào được chọn trong VB.net TabControl
Trả lời
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
TabControl.SelectedTab.
Dưới đây là the link.
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
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
Đã làm việc cho tôi để kiểm soát sự kiện biểu mẫu đóng! – fedeteka
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
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
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.
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
TabControl1_Click:
If TabControl1.SelectedIndex = 0 Then
' Do Something
ElseIf TabControl1.SelectedIndex = 1 Then
' Do Something
End If
End Sub
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. –
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. –
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. –