Chào các bạn! 

    Đã lâu không trở lại với blog mình nhỉ :D dạo này mình lười quá, đồ án và deadline cũng nhiều. Thôi không dài dòng nữa, mình sẽ đi vào vấn đề chính.

   GIỚI THIỆU
   Đã bao giờ bạn nghĩ một phần mềm khi có quá nhiều control thì làm sao để quản lý nhanh các control đó. Hoặc khi có những "nhóm" các control phục vụ các chức năng liên quan đến nhau, khi cần show, hide chúng đồng loại lại phải gọi từng control??? 
   Panel đã ra đời để giải quyết vấn đề đó
   Panel dùng để tạo nhóm các control. Là một container với dạng một khung đơn giản để chưa các sub-control (button, textbox, ...) ở trong nó.




THUỘC TÍNH CỦA PANEL

   Cũng tương tự như các control khác Panel có những thuộc tính rất cơ bản.
   Lưu ý: Các sub-control nằm trong panel, thì sẽ bị ảnh hưởng bởi thuộc tính EnableVisible của panel. Cả hai thuộc tính này đều phụ thuộc vào thuộc tính của panel chứa nó. Đây cũng là lý do dùng panel để show/hide một cụm các control

   Có lẽ các bạn đang thắc mắc khi panel có những chức năng tương tự như Groupbox, vậy thi nó khác gì với groupbox mà chúng ta đã tìm hiểu qua các bài trước. Bạn hãy mở Properties của panel, xem và kiểm tra thử nhé


   Điểm khác nhau giữa Panel và Groupbox:
 - Panel có khả năng Scrollable trong khi groupbox thì không. Panel khi chứa nhiều control có kích thước quá lớn thì thanh cuộn sẽ hỗ trợ việc hiển thị các control đó.
 - Panel còn có hỗ trợ khung viền (borders) đa dạng hơn groupbox
 - Groupbox có thuộc tính Text, dùng làm Caption hiển thị trên đầu khung, trong khi Panel không có


THÊM CONTROL VÀO PANEL

   Để thêm control vào panel bạn có thể kéo thả control đó trực tiếp vào panel chứa nó. Hoặc sử dụng code để thêm
   Ví dụ: Với hàm sau
private void btnCreate_Click(object sender, EventArgs e)
{
        Panel dynamicPanel = new Panel();
        dynamicPanel.Location = new System.Drawing.Point(26, 12);
        dynamicPanel.Name = "Panel123";
        dynamicPanel.Size = new System.Drawing.Size(228, 200);
        dynamicPanel.BackColor = Color.LightBlue;
        dynamicPanel.BorderStyle = BorderStyle.Fixed3D;

        TextBox textBox1 = new TextBox();
        textBox1.Location = new Point(10, 10);
        textBox1.Text = "Học lập trình cùng IceTea Việt";
        textBox1.Size = new Size(200, 30);

        CheckBox checkBox1 = new CheckBox();
        checkBox1.Location = new Point(10, 50);
        checkBox1.Text = "Check Me";
        checkBox1.Size = new Size(200, 30);

        dynamicPanel.Controls.Add(textBox1);
        dynamicPanel.Controls.Add(checkBox1);

        Controls.Add(dynamicPanel);
}
   Kết quả trước và sau click button sẽ là:





TỔNG KẾT

Panel control là một container hay hay là một cơ chế nhóm control trong C# WinForms, và phù hợp cho cả mục đích hình ảnh giao diện và logic chương trình. Với nhiều phong các border, bạn có thể  tổ chức giao diện các sub-control trong panel. Và vì khả năng điều khiển các thuộc tính của các sub-control bạn có thể làm giảm độ phức tạp của code cho chương trình.

Chào các bạn và chúc các bạn học tập tốt!!!