Paso de Datos entre formularios (dos formularios y una clase)

02/03/2006 - 16:27 por cartman | Informe spam
Hola, estoy intentando hacer un ejercicio de pasar datos entre dos
formularios. Primero creo dos formularios, Form1 tiene tres TextBox, un
Label y dos Botones; Form2 tiene tres Labels, un TextBox y un Boton. El
objetivo es que al presionar un boton los datos ingresados en los tres
TextBox del Form1 pasen a los tres Labels del Form2 y que luego al presionar
el boton del Form2 me pase los datos escritos en su TextBox al Label del
Form1.

Lo que hice, basandome en la arquitectura de capas (Presentacion, Logica y
Persistencia), cree dos proyectos. En el primero cree los formularios y en
el segundo una clase que gestiona los datos.

public class GestionarDatos()
{
private string d1:
private string d2:
private string d3:
private string d4:

public string Gd1
{
set{d1=value;}
set{return d1;}
}

public string Gd2
{
set{d2=value;}
set{return d2;}
}

public string Gd3
{
set{d3=value;}
set{return d3;}
}

public string Gd4
{
set{d4=value;}
set{return d4;}
}
}

Esta clase esta en un proyecto de clase que me generara una dll; como me
refiero al proyecto en donde estan creados los formularios, para crear un
objeto tipo Form1 o Form2, que son los formularios que he creado para mostrar
los datos??

La referencia desde el proyecto en donde se encuentran los formularios la
hago facilmente y puedo crear objetos tipo GestionarDatos en los formularios;
el caso es que me dice un mensaje que solo puedo referenciar dll's para la
clase GestionarDatos.

Mediante el boton PasarDatos del Form1, genero un objeto tipo GestionarDatos
en el cual guardo los datos de los TextBox, genero un objeto tipo Form2 y
cargo dichos datos del Form1 en el y luego lo muestro con Show() o
ShowDialog(). El problema se genera cuando me encuentro en el objeto tipo
Form2, escribo los datos en su TextBox para pasarlos nuevamente al Form1 en
su Label, pero en realidad no se como referirme nuevamente al objeto Form1.
Cual es la instancia de Form1 creada por el compilador al momento de ejecutar
el programa?? Como referencio los objetos creados en Form1 (tipo Gestionar
Datos y Form2), luego de haber cargado el objeto Form2??
 

Leer las respuestas

#1 Vyacheslav Popov
02/03/2006 - 17:45 | Informe spam
Hola

Intenta crear un metodo publico en el Form que devuelve la clase
GestionarDatos y los obtienes del siguiente modo:

1. Crea una interfaz para poner y obtener datos.

public interface IGestionarDatos
{
public GestionarDatos GetDatos();
public void SetDatos(GestionarDatos gd);
}

2. Redefines los formularios:

public class Form1 : System.Windows.Forms.Form, IGestionarDatos

3. Implementas los metodos de la interfaz.

4. Heces algo parecido a lo siguiente:

Form2 forma = new Forma2();
forma.SetDatos(this.GetDatos());
forma.ShowDialog();
this.SetDatos(forma.GetDatos());

Saludos. ;)

"cartman" escribió en el mensaje
news:
Hola, estoy intentando hacer un ejercicio de pasar datos entre dos
formularios. Primero creo dos formularios, Form1 tiene tres TextBox, un
Label y dos Botones; Form2 tiene tres Labels, un TextBox y un Boton. El
objetivo es que al presionar un boton los datos ingresados en los tres
TextBox del Form1 pasen a los tres Labels del Form2 y que luego al
presionar
el boton del Form2 me pase los datos escritos en su TextBox al Label del
Form1.

Lo que hice, basandome en la arquitectura de capas (Presentacion, Logica y
Persistencia), cree dos proyectos. En el primero cree los formularios y
en
el segundo una clase que gestiona los datos.

public class GestionarDatos()
{
private string d1:
private string d2:
private string d3:
private string d4:

public string Gd1
{
set{d1=value;}
set{return d1;}
}

public string Gd2
{
set{d2=value;}
set{return d2;}
}

public string Gd3
{
set{d3=value;}
set{return d3;}
}

public string Gd4
{
set{d4=value;}
set{return d4;}
}
}

Esta clase esta en un proyecto de clase que me generara una dll; como me
refiero al proyecto en donde estan creados los formularios, para crear un
objeto tipo Form1 o Form2, que son los formularios que he creado para
mostrar
los datos??

La referencia desde el proyecto en donde se encuentran los formularios la
hago facilmente y puedo crear objetos tipo GestionarDatos en los
formularios;
el caso es que me dice un mensaje que solo puedo referenciar dll's para la
clase GestionarDatos.

Mediante el boton PasarDatos del Form1, genero un objeto tipo
GestionarDatos
en el cual guardo los datos de los TextBox, genero un objeto tipo Form2 y
cargo dichos datos del Form1 en el y luego lo muestro con Show() o
ShowDialog(). El problema se genera cuando me encuentro en el objeto tipo
Form2, escribo los datos en su TextBox para pasarlos nuevamente al Form1
en
su Label, pero en realidad no se como referirme nuevamente al objeto
Form1.
Cual es la instancia de Form1 creada por el compilador al momento de
ejecutar
el programa?? Como referencio los objetos creados en Form1 (tipo
Gestionar
Datos y Form2), luego de haber cargado el objeto Form2??

Preguntas similares