clases y winform

02/07/2007 - 10:32 por Aitziber | Informe spam
Hola.
Estoy haciendo un programa con Winform. La cosa es que quiero hacer clases
porque sino el programa me queda muy largo.
He hecho varias clases pero tengo algunos problemas.
Si yo quiero que en una clase me coja los valores de un textbox de un
formulario,¿lo puedo hacer?

No se si me he explicado bien

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
02/07/2007 - 11:50 | Informe spam
"Aitziber" wrote in message
news:O%
Estoy haciendo un programa con Winform. La cosa es que quiero hacer clases
porque sino el programa me queda muy largo.
He hecho varias clases pero tengo algunos problemas.
Si yo quiero que en una clase me coja los valores de un textbox de un
formulario,¿lo puedo hacer?



Si quieres tomar los valores de un textbox de un formulario desde una
clase distinta de la del formulario, lo que necesitas en primer lugar es que
dicha clase disponga de una referencia al formulario. No basta con el nombre
de la clase del formulario, puesto que podría haber varias copias del mismo
cargadas en memoria (aunque en tu caso sepas que tu programa solo crea una).
Lo que se necesita es la instancia concreta del formulario. Una forma de
pasársela a la clase, es utilizando el constructor en el momento de crearla.

Por ejemplo, supongamos que el formulario lo creas así:

Form1 frm = new Form1();
frm.Show();

Bien, pues esa variable "frm" es la que tienes que hacerle llegar a tu
clase. Podrías hacerlo asi:

MiClase cls = new MiClase(frm);

Y dentro de MiClase tendrías que guardar el valor:

class MiClase
{
private Form1 formularioLlamante;

public MiClase(Form1 frm)
{
formularioLlamante = frm;
}

public CambiarTextoEnElForm(string s)
{
formularioLlamante.TextBox1.Text = s;
}
}
Respuesta Responder a este mensaje
#2 Alberto Poblacion
02/07/2007 - 12:07 | Informe spam
En un mensaje anterior dije:
[...]
formularioLlamante.TextBox1.Text = s;



Ah, una cosa: para que eso funcione, lógicamente el TextBox1 tiene que
tener los "Modifiers" cambiados a "public", para que sea visible desde fuera
del formulario.
Los puristas te dirán que esto es poco elegante, y que es preferible
dejar el TextBox como privado y en su lugar hacer pública en el formulario
una propiedad o método que reciba el texto como parámetro y lo asigne al
TextBox:

public CambiarTextBox(string nuevoValor)
{
TextBox1.Text = nuevoValor;
}

En ese caso, la llamada desde la Clase atacará a esta función en lugar de
al TextBox:

formularioLlamante.CambiarTextBox(s);
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida