Referencia a campo del Formulario

18/01/2008 - 12:17 por Niurka | Informe spam
Hola, ojala me puedan ayudar con esto:


Clase de form con un campo TB

public class FormDatos : Form
{
public ToolStrip TB;
.
}

Luego luego en otra clase llamada TextBoxDatos.

public class TextBoxDatos : TextBox
{
private void ChequeaTB ()
{
}
}

Considerando que a un FormDatos yo le incluya una instancia de TextBoxDatos
pero durante el diseño del form, como hago para dentro del metodo ChequeaTB
tener acceso al campo TB del formulario?
 

Leer las respuestas

#1 Alberto Poblacion
18/01/2008 - 12:28 | Informe spam
"Niurka" wrote in message
news:%
Clase de form con un campo TB

public class FormDatos : Form
{
public ToolStrip TB;
.
}

Luego luego en otra clase llamada TextBoxDatos.

public class TextBoxDatos : TextBox
{
private void ChequeaTB ()
{
}
}

Considerando que a un FormDatos yo le incluya una instancia de
TextBoxDatos pero durante el diseño del form, como hago para dentro del
metodo ChequeaTB tener acceso al campo TB del formulario?



Desde el textBox puedes acceder al formulario que lo contiene a través de la
propiedad Parent. Sin embargo, no puedes poner directamente esto:

ToolStrip ts = this.Parent.TB;

debido a que "Parent" es del tipo Control y no del tipo de la clase
FormDatos (que es hija de Control), por lo que el compilador no te
reconocerá "Parent.TB". La solución sería usar un "cast":

ToolStrip ts = ((FormDatos)this.Parent).TB;

pero esto solo funcionará si están los dos en el mismo proyecto o si
puedes ponerle al proyecto del textbox una referencia al proyecto del form.
Si esto no es viable, puedes acceder a la propiedad por Reflexión, o bien
puedes declarar un Interface adecuado para exponer ese campo, hacer que el
form implemente el interface, y poner desde el proyecto del textbox una
referencia a la dll que contenga ese interface.

Preguntas similares