Pasar valores entre objetos de distintos formularios

01/03/2004 - 04:33 por elNomade | Informe spam
Buenas.
Les paso mi consulta.
Tengo un formulario MDI que instancia un nuevo formulario hijo Uno, y
con otro botón un formulario heredado llamado Dos (que no es hijo).
Ambos formularios tienen un control de texto enriquecido, y en Uno abro
archivo rtf.
Lo que quiero hacer es cargar el control del formulario Dos con lo que
tengo en el Uno.

Gracias.

Preguntas similare

Leer las respuestas

#1 elNomade
01/03/2004 - 04:57 | Informe spam
elNomade wrote:

Buenas.
Les paso mi consulta.
Tengo un formulario MDI que instancia un nuevo formulario hijo Uno, y
con otro botón un formulario heredado llamado Dos (que no es hijo).
Ambos formularios tienen un control de texto enriquecido, y en Uno abro
archivo rtf.
Lo que quiero hacer es cargar el control del formulario Dos con lo que
tengo en el Uno.

Gracias.





Es decir que con un timer tick pasar el valor al otro componente.
Respuesta Responder a este mensaje
#2 Crosio, Pablo
01/03/2004 - 05:25 | Informe spam
Hola

Una forma es que te crees una propiedad en Dos que referencie al formulario
MDI padre, luego desde esa referencia a traves de MdiChildren obtener la
referencia a Uno para trabajar con su control RichTextBox (ojo! debes
cambiar a public la declaracion de la variable de tipo RichTextBox en
Uno)...
Otra es que en la propiedad en Dos guardes la referencia a Uno directamente.

Cuando asignar la propiedad, puede ser al momento de crear Dos, incluso
puedes pasar la referencia en el constructor... o asignarla luego de creado
el formulario. (todo depende de que formulario se cree primero!)

Salu2!!

Pablo

"elNomade" wrote in message
news:esDF71z$
Buenas.
Les paso mi consulta.
Tengo un formulario MDI que instancia un nuevo formulario hijo Uno, y
con otro botón un formulario heredado llamado Dos (que no es hijo).
Ambos formularios tienen un control de texto enriquecido, y en Uno abro
archivo rtf.
Lo que quiero hacer es cargar el control del formulario Dos con lo que
tengo en el Uno.

Gracias.

Respuesta Responder a este mensaje
#3 Leonardo
01/03/2004 - 12:24 | Informe spam
Crosio, Pablo escribió:
Hola

Una forma es que te crees una propiedad en Dos que referencie al formulario
MDI padre, luego desde esa referencia a traves de MdiChildren obtener la
referencia a Uno para trabajar con su control RichTextBox (ojo! debes
cambiar a public la declaracion de la variable de tipo RichTextBox en
Uno)...
Otra es que en la propiedad en Dos guardes la referencia a Uno directamente.

Cuando asignar la propiedad, puede ser al momento de crear Dos, incluso
puedes pasar la referencia en el constructor... o asignarla luego de creado
el formulario. (todo depende de que formulario se cree primero!)

Salu2!!

Pablo

"elNomade" wrote in message
news:esDF71z$

Buenas.
Les paso mi consulta.
Tengo un formulario MDI que instancia un nuevo formulario hijo Uno, y
con otro botón un formulario heredado llamado Dos (que no es hijo).
Ambos formularios tienen un control de texto enriquecido, y en Uno abro
archivo rtf.
Lo que quiero hacer es cargar el control del formulario Dos con lo que
tengo en el Uno.

Gracias.








Podes ejemplificar con codigo, por favor.
Respuesta Responder a este mensaje
#4 pablo crosio
01/03/2004 - 15:04 | Informe spam




Podes ejemplificar con codigo, por favor.

.




hola!

supongamos que se opta por tener en el formulario Dos una
propiedad con una referencia al formulario Uno; el valor
lo pasaremos en el constructor del formulario Dos; por
ende al momento de crear Dos debe existir una instancia
del formulario Uno en memoria.
vamos a acceder a la popiedad Rtf del RichTextBox en Uno


desde el MDI padre para llamar a Dos, suponiendo que Uno
esta en memoria:

// ojo! solamente funciona ok si no existe mas de una sola
instancia de Uno en memoria
// guardo en frmUno la referencia de Uno

Uno frmUno = null;
for(int n = 0; n < this.MdiChildren.Length && frmUno ==
null; n++)
if(this.MdiChildren[n] is Uno)
frmUno = (Uno)this.MdiChildren[n];
if(frmUno != null)
// llamar a Dos y pasar la referencia a Uno en su
constructor
new Dos.Show(frmUno);
else
// Uno no instanciado en memoria


en el formulario Uno cambiar de private a public la
variable de tipo RichTextBox, en la seccion de
declaraciones:

public System.Windows.Forms.RichTextBox RtfEnUno;


en el formulario Dos, constructor:

public Dos(Uno frmUno)
{
...
// frmUno propiedad de Dos que referencia a Uno
this.frmUno = frmUno;
}

Luego en Dos en donde se quiera asignar la propiedad Rtf
del control RichTextBox a partir del valor de Uno:

// RtfEnDos, control RichTextBox del formulario Dos
this.RtfEnDos.Rtf = this.frmUno.RtfEnUno.Rtf;


no lo probe en real! salu2!!

Pablo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida