2011-12-28 30 views
46

Tôi đang thực hiện một sự kiện để kiểm tra xem trang tab cụ thể trong điều khiển tab có đang hoạt động hay không.Kiểm tra xem một trang tab cụ thể có được chọn (hoạt động)

Vấn đề là nó sẽ kích hoạt sự kiện nếu trang tab đó trong điều khiển tab là tab hiện được chọn. Bất kỳ mã nào sẽ cho tôi những gì tôi cần?

+1

Bạn đang làm việc trong WPF, Windows Forms? –

+0

Nó có một sự kiện 'SelectedIndexChanged' tại sao không kiểm tra tab cụ thể của bạn ở đó và làm công việc của bạn – V4Vendetta

+1

@Maxim: Yup, Windows Forms: System.Windows.Forms.TabControl và System.Windows.Forms.TabPages. –

Trả lời

71

Giả sử bạn đang nhìn ra ngoài trong Winform, có một sự kiện SelectedIndexChanged cho tab

Bây giờ trong nó, bạn có thể kiểm tra các tab cụ thể của bạn và tiến hành với logic

private void tab1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (tab1.SelectedTab == tab1.TabPages["tabname"])//your specific tabname 
    { 
     // your stuff 
    } 
} 
+0

Cảm ơn bạn, đây là điều tôi đang tìm kiếm. Những gì tôi không biết là các TabPages ["tabname"] thingy, một lần nữa, cảm ơn bạn –

+0

Bạn cũng có thể sử dụng cùng một phương pháp để chọn tab: 'tab1.SelectedTab = tab1.TabPages [" tabname "]' – SharpC

17

Để kiểm tra xem một trang tab cụ thể là trang được chọn hiện tại của điều khiển tab rất dễ dàng; chỉ cần sử dụng tài sản selectedTab của điều khiển tab:

if (tabControl1.SelectedTab == someTabPage) 
{ 
// Do stuff here... 
} 

này rất hữu ích hơn nếu mã được thực thi dựa trên một số sự kiện khác hơn là trang tab được chọn (trong trường hợp này SelectedIndexChanged sẽ là một lựa chọn tốt hơn). Ví dụ: Tôi có một ứng dụng sử dụng bộ hẹn giờ để thường xuyên thăm dò ý kiến ​​qua kết nối TCP/IP, nhưng để tránh lưu lượng TCP/IP không cần thiết, tôi chỉ thăm dò ý kiến ​​các điều khiển GUI trong trang tab hiện đang được chọn.

3

trong Net 4 có thể sử dụng

if (tabControl1.Controls[5] == tabControl1.SelectedTab) 
       MessageBox.Show("Tab 5 Is Selected"); 

HOẶC

if (tabpage5 == tabControl1.SelectedTab) 
     MessageBox.Show("Tab 5 Is Selected"); 
+1

Trừ một: điều này không thêm bất kỳ điều gì vào câu trả lời được đăng năm trước đó. –

1

Đối với bất cứ lý do nêu trên sẽ không làm việc cho tôi. Đây là những gì đã làm:

if (tabControl.SelectedTab.Name == "tabName") 
{ 
    .. do stuff 
} 

nơi tabControl.SelectedTab.Name là thuộc tính tên được gán cho trang trong tabcontrol.

Các vấn đề liên quan