2012-03-13 70 views
9

Tôi đang cố gắng tự động kích hoạt sự kiện dựa trên trang tab được nhấp vào điều khiển tab.TabPage Nhấp vào Sự kiện

Trong chế độ thiết kế biểu mẫu của tôi, khi tôi bấm vào các tab, hộp thuộc tính cho biết Tab System.Windows.Forms.TabControl bất kỳ tab nào được chọn. Tuy nhiên, tôi phải nhấp vào trang thực tế, không phải tab để thuộc tính thay đổi thành tên của các trang, ví dụ: TaskListPage System.Windows.Forms.TabPage.

Tabcontrol của tôi được gọi là Tab và tôi đã cố gắng thử nghiệm bằng cách sử dụng mã bên dưới được cho là hiển thị thông báo dựa trên tùy chọn tab.

private void Tabs_SelectedIndexChanged(object sender, EventArgs e) 

     { 
      if (Tabs.SelectedTab == TaskListPage) 
      { 
       MessageBox.Show("TASK LIST PAGE"); 
      } 
      else if (Tabs.SelectedTab == SchedulePage) 
      { 
       MessageBox.Show("SCHEDULE PAGE"); 
      } 
     } 

Khi tôi kiểm tra mã ở trên, không có gì xảy ra.

Bất kỳ trợ giúp nào trong việc giúp các sự kiện hoạt động khi một tab cụ thể được nhấp vào sẽ được đánh giá cao!

Thankyou

Trả lời

13

Có vẻ như bạn không có nó dây lên:

public Form1() { 
    InitializeComponent();  
    Tabs.SelectedIndexChanged += new EventHandler(Tabs_SelectedIndexChanged); 
} 

Có những sự kiện khác có thể cung cấp cho bạn thông tin này cũng như: SelectedSelecting.

void Tabs_Selected(object sender, TabControlEventArgs e) { 
    if (e.TabPage == TaskListPage) { 
    // etc 
    } 
} 
+0

Cảm ơn nó hiện đang hoạt động! :) – Rob

+0

Tôi sẽ thêm điều này ở đây cho những người tìm kiếm giải pháp cho cùng một vấn đề mà tôi gặp phải.Không được kích hoạt cho đến sau khi hàm tạo đã chạy. Thậm chí thêm bộ xử lý theo cách thủ công vì Lars gợi ý không hoạt động. Thêm mã kích hoạt sự kiện trong Trình xử lý sự kiện tải cho Biểu mẫu. – ensignr

0

phần đầu tiên này đi trong

public Form1() 
    { 
// This is near the top of the form 1 code in form1.cs 

     InitializeComponent(); 
     tabControl1.SelectedIndexChanged += new EventHandler(TabControl1_SelectedIndexChanged); 
    } 

Sau đó xuống dưới trong mã thường xuyên của bạn, bạn chỉ cần nói cho mà kiểm soát nên có sự tập trung sau khi trang tab được nhấp. Trong bộ xử lý văn bản của tôi, tôi đã sử dụng một hộp văn bản có định dạng và các điều khiển tab để mô phỏng băng msword. Việc kiểm soát rich text trong trường hợp của tôi không phải là trên một trang tab như các trang tab của tôi bao gồm có thể 1 hoặc 2 inch trên đỉnh của các hình thức

private void TabControl1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     richTextBox1.Focus(); 
    } 

Đây là những gì tôi gọi là xử lý văn bản của tôi. Nó ở đây cho bất cứ ai muốn sử dụng nó. Larry's Journal

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