2012-03-18 10 views
7

W moim projekcie utworzyłem wiele elementów sterujących użytkownika i muszę je przełączać na panelu sterowania.Jak dodać kontrolę użytkownika do panelu

na przykład, jeśli użytkownik kliknie przycisk 1, userControl1 zostanie dodany do panelu po usunięciu wszystkich kontrolek na nim i tak dalej.

mam ten kod:

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

ale to nie działa.

Jak mogę to zrobić?

+0

jest 'MyProject.Modules.Masters' nazwę klasy kontrola lub wystąpienie Control? – DaveShaw

+0

MyProject.Modules.Masters to nazwa klasy kontrolnej – Saleh

Odpowiedz

17

Musisz wykonać instancję sterowania. Musisz upewnić się, że rozmiar jest odpowiednio ustawiony lub aby mieć odpowiednie dokowanie.

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

Należy utworzyć instancję nowego obiektu MyProject.Modules.Master.

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

To spowoduje dodanie nowego kontrolki tylko do panelu1. Jeśli chcesz również wyczyścić wszystko z panelu przed dodaniem kontrolki, tak jak powiedziałeś w pytaniu, zadzwoń najpierw:

panel1.Controls.Clear(); 
0

Jest nie tylko łatwiejsze.

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

EDIT: Może spróbuj tego ...

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

Controls.Clear nie pozbędzie się istniejących elementów sterujących. – LarsTech

Powiązane problemy