Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 7 của 7
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    thao tác trên một form có quá nhiều panel. Giúp

    Mình cần làm 1 form có 1 treeview bên trái còn bên phải là 1 panel. Khi kick vào 1 item trên treeview thì panel bên phải sẽ thay đổi theo. vấn đề là có quá nhiều panel nên rất khó cho lúc design vì chọn panel & xắp xếp khó quá. ai có kinh nghiệm gì thì chỉ dùm mình với. Mình thấy tabcontrol rất hay nhưng lại ko bỏ được thẻ tab ở trên đi.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn có thể tạo ra nhiều User Control, mỗi cái ứng với 1 panel, khi cần sẽ tạo ra và gắn chúng lên form theo kiểu "động".

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn có thể nói cụ thể hơn ko? Các control trên panel khác nhau. Lúc design thì cần control nào thì cho control đấy vào nên mình ko hiểu làm động là làm thế nào?

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nghĩ mãi cuối cùng ra dc 1 cách là cứ dùng tabcontrol lúc design còn runtime thì ẩn tabcontrol rùi lấy panel trong tabcontrol ra. Vậy dễ thao tác trong cả design lẫn runtime. ^^

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi lit.aptech
    Bạn có thể nói cụ thể hơn ko? Các control trên panel khác nhau. Lúc design thì cần control nào thì cho control đấy vào nên mình ko hiểu làm động là làm thế nào?
    Trước tiên là bạn có hiểu khái niệm UserControl ko? Thực tế với những chuơng trình chia ra nhiều panel nhỏ giống như của bạn (ví dụ các chuơng trình chia ra nhiều thẻ như Tune Up, Xp Manager,...) thì bạn có thể nhận thấy là khi click vào 1 thẻ (thường được thay thể bằng các Button) thì nó sẽ cần một khoảng thời gian để nạp panel cần thiết lên. Nghĩa là ko phải tất cả các panel trong chuơng trình đều được nạp lên khi chuơng trình khởi động, điều này rất mất thời gian và lãng phí bộ nhớ.
    Để làm điều này người ta ko chứa các panel đó trong cùng 1 form mà chia ra nhiều UserControl khác nhau. Việc chứa các panel trong cùng 1 form tạo ra những phức tạp và dễ gây lộn xộn trong quá trình viết code. Các UserControl chỉ đơn giản giống như các panel bạn có thể kéo thả và thao tác như trên form. Còn vấn đề tạo "động" thì nó là điều mà bất cứ lập trình viên hướng đối tượng nào cũng đã từng dùng qua, cũng như khi bạn tạo ra 1 panel vậy:


    Panel p1 = new Panel();
    myForm.Controls.Add(p1);
    Bạn có thể add nó vào 1 panel cha chuyên chứa nội dung và gán Dock là Fill.

  6. #6
    Thiết kế mỗi cái một Form.
    Sau đó show Form vào panel là được.

    Code show form lên Panel
    Mã:
    Form1 frm = new Form1();
                    frm.TopLevel = false;
                    frm.Parent = this.mypanel; // Tên panel cần show form lên
                    frm.Dock = DockStyle.Fill;
                    frm.FormBorderStyle = FormBorderStyle.None;
    
                    frm.Show();

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    hi.làm vậy cũng hay nhưng viết code khó quá, tham chiếu đến panel ở form khác khó như ma làm ^^.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •