2010-11-21 13 views
13

En WinForms, ¿cómo puedo crear un UserControl que cuando pongo mi formulario puedo agregar otros controles arrastrándolos de la caja de herramientas, de la misma manera que con todos los controles de contenedores (paneles, cuadros de grupo, etc.)? Intenté agregar controles dejándolos bajo mi control, pero luego, cuando muevo mi control, los controles que agregué permanecen exactamente donde están, lo que no sucedería si en lugar de mi control usara un Panel (los otros controles mover con el panel).¿Cómo crear un UserControl que puede colocar otros controles en él?

+0

WinForms o WPF? –

+0

WinForms ........ – Juan

Respuesta

20

A diferencia de un control Panel por ejemplo, un UserControl no actúa como un control de contenedor una vez que se coloca en otro formulario. Hay soporte completo en tiempo de diseño mientras diseña el UserControl, pero su comportamiento predeterminado no le permite actuar como control constitucional después de haber sido colocado en otro formulario. Es por eso que no puede agregar otros controles arrastrándolos desde la caja de herramientas. Para agregar este tipo de comportamiento a UserControl, debe agregar DesignerAttribute a la definición de su clase personalizada UserControl. Por ejemplo:

using System.ComponentModel; 
using System.ComponentModel.Design; 

[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] 
public class MyUserControl : System.Windows.Forms.UserControl 
{ 
    //...your code here 
} 

(. Véase el artículo correspondiente MSDN para la lectura adicional)


Si desea implementar el soporte diseñador completo para anidados controles dentro de su UserControl, esto es un poco más difícil. Para una discusión más completa, vea this article en CodeProject.

Cuestiones relacionadas