2012-03-18 56 views
7

He creado múltiples controles de usuario en mi proyecto y lo que tengo que hacer es poder cambiar entre ellos en un control de panel.Cómo agregar control de usuario al panel

por ejemplo, si el usuario hace clic en el botón 1, userControl1 se agregará al panel después de quitar cada control en él, y así sucesivamente.

tengo este código:

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

pero no está funcionando.

¿Cómo puedo hacerlo?

+0

es 'MyProject.Modules.Masters' el nombre de la clase de control o una instancia del control? – DaveShaw

+0

MyProject.Modules.Masters es el nombre de clase del control – Saleh

Respuesta

17

Tienes que crear una instancia de tus controles. Deberá asegurarse de que el tamaño esté configurado adecuadamente o de que tenga un relleno apropiado.

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

Necesita crear una instancia de MyProject.Modules.Masters nueva.

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

Esto solo agregará un nuevo control al panel1. Si también desea borrar todo del panel antes de agregar el control como usted ha dicho en la pregunta, llame a esta primera:

panel1.Controls.Clear(); 
0

no es sólo más fácil.

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

EDIT: Tal vez probar este ...

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

Controls.Clear no eliminará esos controles existentes. – LarsTech

Cuestiones relacionadas