2010-03-24 65 views
5

Tôi đang tạo một tab nhỏ C# Biểu mẫu và tôi muốn mỗi trang tab có một số tính năng phổ biến, đáng chú ý là nút OK và thông báo lỗi và có khoảng trống cụ thể các trường biểu mẫu.Tạo điều khiển TabPage tùy chỉnh trong C#

Có ai khác đã làm điều gì đó tương tự và cách bạn tiếp cận không?

+0

Nút OK trên mỗi Trang? –

+1

không đúng một câu trả lời, nhưng tôi nghĩ rằng tôi sẽ làm một số thử nghiệm mở rộng tabcontrolpage ban đầu, thêm các tính năng phổ biến bạn cần – michele

Trả lời

7

Điều này rất dễ thực hiện mà không cần mở rộng TabControl/TabPage.

Xác định một UserControl và đặt các phần tử phổ biến vào nó mà bạn muốn trên mọi TabPage.

Trên biểu mẫu: tiếp tục và thiết kế các điều khiển TabPage cụ thể mà bạn muốn cho mỗi TabPage: đảm bảo rằng chúng sẽ không chồng chéo trực quan với các điều khiển chung khi UserControl đã được thêm.

Trong Form sự kiện Load của Form chính của bạn làm điều gì đó như thế này:

// form scoped variable to hold a referece to the current UserControl 
    private UserControl1 currentUserControl; 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     foreach(TabPage theTabPage in tabControl1.TabPages) 
     { 
      currentUserControl = new UserControl1(); 

      theTabPage.Margin = new Padding(0); 
      theTabPage.Padding = new Padding(0); 

      theTabPage.Controls.Add(currentUserControl); 

      currentUserControl.Location = new Point(0,0); 

      currentUserControl.Dock = DockStyle.Fill; 

      currentUserControl.SendToBack(); 
     } 
    } 

Mặc dù 'SendToBack là không thực sự cần thiết ở đây nó là 'bảo hiểm' mà UserControl của bạn với các' nút Okay và TextBox cho một thông báo lỗi được đặt phía sau các điều khiển riêng lẻ mà bạn đã gán cho mỗi TabPage.

+1

Những người bạn xuống bình chọn: hiểu tại sao không thích giải pháp này sẽ được đánh giá cao. thanks, – BillW

+0

@BillW Trên thực tế, một số ass đánh dấu phần này là spam. Bây giờ, tôi không biết đây có phải là câu trả lời hay không nhưng tôi biết đó không phải là thư rác. Vì vậy, +1 để giúp bù đắp cho sự mất mát đại diện và trung hòa xếp hạng của câu trả lời của bạn. –

+0

Xin chào BillW, Tôi thích giải pháp này. Tôi biết nó có nghĩa là tôi mất hỗ trợ thiết kế về "nhìn thấy" sự kiểm soát, nhưng tôi nghĩ rằng nó thực hiện công việc độc đáo, cảm ơn. –

2

Một số ý tưởng:

  • Giữ điều khiển thông thường bên ngoài TabPanel;
  • Mở rộng TabPage/TabControl
  • Tạo UserControl cơ bản bằng các nút chung và tạo các liên kết người dùng kế thừa từ đó. Sau đó đặt một usercontrol kế thừa cho mỗi TabPage.
Các vấn đề liên quan