2010-07-23 11 views
5

Cuando un usuario selecciona un botón, se agrega un control de usuario personalizado al formulario. Este control de usuario proporciona la capacidad de ingresar algunos valores.¿Agregar algo como ShowDialog a un control de usuario personalizado?

¿Cómo espero que se complete el control del usuario antes de cambiar el valor en mi formulario principal?

Estaba pensando en algo como esto:

customControl ylc = new customControl(); 
ylc.Location = new Point(11, 381); 
ylc.Parent = this; 
ylc.BringToFront(); 

if(ylc.ShowDialog() == DialogResult.OK) 
{ 
    this.lblSomeText.Text = ylc.PublicPropertyValue 
} 

Update1

El control de usuario no se puede añadir a su propia forma. En algunas formas, está 'incrustado' y en otras formas se crea dinámicamente según sea necesario.

Update2

Este SO link era útil.

Mi solución final se parece a (I oculto la usercontrol cuando 'completado'):

customControl ylc = new customControl(); 
ylc.Location = new Point(11, 381); 
ylc.Parent = this; 
ylc.BringToFront(); 
ylc.VisibleChanged += new EventHandler(ylc_VisibleChanged);  
ylc.Show(); 

A continuación, este código va en el 'VisibleChanged' caso:

if(ylc.ShowDialog() == DialogResult.OK) 
{ 
    this.lblSomeText.Text = ylc.PublicPropertyValue 
} 
+0

Tu código no ayudó pero tu redacción sí. Para mí, tuve que hacer: CustomControl customControl = new CustomControl(); Forma newForm = new Form(); newForm.Controls.Add (customControl); newForm.ShowDialog(); – anon58192932

Respuesta

6

Un control de usuario no Realmente completo ¿o sí? Creo que lo que está tratando de hacer podría mejorar si pone el control del usuario en su propio formulario y llama a ShowDialog sobre eso.

+1

Sí, dependiendo de lo que intente hacer exactamente con su control, debería pensar en colocarlo en su propia forma, o en lugar de heredar 'Control' heredará' Form' en su lugar. –

+0

Pensé en eso, pero el control se usa de diferentes maneras en diferentes formas. La única forma en cuestión solo necesita usar el control ocasionalmente. Una vez que el usuario ha ingresado el valor requerido, puede 'cerrar' el control de usuario ocultándolo. –

+1

¿No podría adjuntar a cualquier mecanismo con el que esté 'cerrando' el control del usuario para establecer su valor? – msergeant

Cuestiones relacionadas