2012-03-18 47 views
7

Tôi đã tạo nhiều điều khiển người dùng trong dự án của mình và những gì tôi cần làm là có thể chuyển đổi giữa chúng trên bảng điều khiển. Ví dụ:Cách thêm điều khiển người dùng vào bảng điều khiển

ví dụ: nếu người dùng nhấp vào button1, userControl1 sẽ được thêm vào bảng điều khiển sau khi xóa mọi điều khiển trên bảng điều khiển, v.v.

tôi có mã này:

panel1.Controls.Add(MyProject.Modules.Masters); 

nhưng nó không làm việc.

Tôi có thể làm như thế nào?

+0

là 'MyProject.Modules.Masters' tên lớp kiểm soát hay một thể hiện của Control? – DaveShaw

+0

MyProject.Modules.Masters là tên lớp của Kiểm soát – Saleh

Trả lời

17

Bạn phải nhanh chóng điều khiển. Bạn sẽ phải đảm bảo kích thước được đặt phù hợp hoặc để kích thước phù hợp.

var myControl = new MyProject.Modules.Masters(); 
panel1.Controls.Add(myControl); 
9

Bạn cần tạo nhanh MyProject.Modules.Masters mới.

MyProject.Modules.Masters myMasters = new MyProject.Modules.Masters() 
panel1.Controls.Add(myMasters); 

Điều này sẽ chỉ thêm điều khiển mới vào bảng điều khiển1. Nếu bạn cũng muốn xóa mọi thứ ra khỏi bảng điều khiển trước khi thêm điều khiển như bạn đã nói trong câu hỏi, hãy gọi điều này trước:

panel1.Controls.Clear(); 
0

Không chỉ dễ dàng hơn.

panel1.Controls.Clear(); 
panel1.Controls.Add(new MyProject.Modules.Masters()); 

EDIT: Có thể thử này ...

panel1.Controls.Cast<Control>().ForEach(i => i.Dispose()); 
panel1.Controls.Clear(); 
panel1.Controls.Add(new MyProject.Modules.Masters()); 
+0

Controls.Clear sẽ không loại bỏ các điều khiển hiện tại đó. – LarsTech

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