Formularios y Clases

29/08/2004 - 01:39 por Fran Lopez | Informe spam
Hola, tengo un problema, y aunque seguro que es algo sencillo no
encuentro la solución. Os explico.

Creo un formulario principal (frmPrincipal) con un listBox (lbxTexto) al
cual quiero acceder desde una clase del mismo proyecto (Class1).

He intentado varias cosas: cambiar la accesibilidad a Public del
listBox, crear un metodo que acceda al listBox desde el formulario
Principal y desde la clase llamar al metodo... y nada.

El using en class1 lo tengo apuntando al espacio de nombres del formulario.

¿Alguien puede ayudarme?

Sera una tonteria, pero no la encuentro.

Gracias

Jordi López Díaz
 

Leer las respuestas

#1 Octavio Hernandez
29/08/2004 - 15:54 | Informe spam
Fran,

Me parece que el problema viene de no tener clara la diferencia entre clases
y objetos.

Al crear el formulario principal, lo que has hecho es crear UNA CLASE
llamada frmPrincipal que hereda de System.Windows.Forms.Form, la clase base
para los formaulrios WinForms. Luego al diseñar, has indicado que todos los
objetos de esa clase contendrán un objeto lbxTexto del tipo ListBox.

Ahora bien, durante la ejecución del programa lo que tendrás serán OBJETOS
de esa clase. En particular, en el método Main() podrás ver la instrucción:

Application.Run(new frmPrincipal());

en la que se crea el objeto (anónimo) que representa a la ventana principal
de tu aplicación. ESE es el objeto al que tendrías que referirte desde
Class1.

Para poder acceder a ese objeto deberás almacenar su referencia en algún
sitio. Por ejemplo, puedes definir una variable estática en la clase y
asignarle valor en Main():

public frmPrincipal: Form
{
//

public static frmPrincipal f1 = null;

public static void Main()
{
f1 = new frmPrincipal();
Application.Run(f);
}
}

Luego desde tu clase class1 podrás referirte a ese formulario principal
mediante frmPrincipal.f1.

Slds - Octavio




"Fran Lopez" escribió en el mensaje
news:cJ8Yc.7998$
Hola, tengo un problema, y aunque seguro que es algo sencillo no
encuentro la solución. Os explico.

Creo un formulario principal (frmPrincipal) con un listBox (lbxTexto) al
cual quiero acceder desde una clase del mismo proyecto (Class1).

He intentado varias cosas: cambiar la accesibilidad a Public del
listBox, crear un metodo que acceda al listBox desde el formulario
Principal y desde la clase llamar al metodo... y nada.

El using en class1 lo tengo apuntando al espacio de nombres del


formulario.

¿Alguien puede ayudarme?

Sera una tonteria, pero no la encuentro.

Gracias

Jordi López Díaz

Preguntas similares