asignar .text a label de otro formulario

20/03/2007 - 09:10 por Jordi | Informe spam
Hola,

Tengo 2 formularios form1 y form2

En form1 tengo un SerialPort con el evento dataArrival
Al recivir un dato intento actualizar una label del form2 (Teniendo
activo el form2, y el 1 en hide)

form2.label1.text = stringDatos

NO DA ERROR! pero la label no se entera de nada!!



Tambien he intentado llamar a un public sub del form2 y hacerlo desde
form2 con: me.label1.text = Losdatos
Pero tampoco!!!

Alguien sabe que pasa??

gracias,

Preguntas similare

Leer las respuestas

#1 SoftJaén
20/03/2007 - 15:14 | Informe spam
"Jordi" escribió:

Tengo 2 formularios form1 y form2

En form1 tengo un SerialPort con el evento dataArrival
Al recivir un dato intento actualizar una label del form2 (Teniendo
activo el form2, y el 1 en hide)

form2.label1.text = stringDatos

NO DA ERROR! pero la label no se entera de nada!!




Hola, Jordi:

Pues todo dependerá de la forma que instancias al segundo formulario. Si has
creado una variable objeto que apunta a Form2, el control Label no se
"enterará" de nada:

Dim frm As New Form2
frm.Show

' Esto no funciona
Form2.Label1.Text = stringDatos

Para que funcione, deberás de utilizar la variable objeto que referencia al
segundo formulario:

frm.Label1.Text = stringDatos

Lógicamente, tendrás que declarar la variable objeto «frm» a nivel de la
clase Form1.

Como parto de la premisa que estás utilizando Visual Basic 2005, otra cosa
que puedes hacer para evitar declarar una variable objeto de la clase Form2,
es llamar directamente al método compartido «Show» de dicha clase:

' Muestro el segundo formulario
Form2.Show

' Posteriormente escribo los datos en la etiqueta
Form2.Label1.Text = stringDatos

Esto último sí debe de funcionar.

Por supuesto, doy por sentado que la visibilidad del objeto Label es al
menos «Friend».

Tambien he intentado llamar a un public sub del form2 y hacerlo desde
form2 con: me.label1.text = Losdatos
Pero tampoco!!!

Alguien sabe que pasa??



Sucede otro tanto de lo mismo: dependerá de la forma de instanciar al
segundo formulario.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Toni Recio
21/03/2007 - 12:28 | Informe spam
Quizás el problema reside en el componente que usas para comunicaciones
seriales. Me explico:

Puede que el componente use un porcentaje alto de CPU delegando algunos
eventos de actualización de la interfaz a un segundo plano. En esta caso
podrías intentar forzar el proceso de dichos eventos mediante la sentencia:

Applications.DoEvents()

Por otro lado, es posible que el código que modifica los textos esté
incluido en algún evento del control, con lo que es posible que se ejecute en
un hilo (thread) diferente al que instanció el formulario. Quizás jugar con
un BackgroundWorker en este caso podría ser la solución.

Espero que te sea de ayuda.

"Jordi" wrote:

Hola,

Tengo 2 formularios form1 y form2

En form1 tengo un SerialPort con el evento dataArrival
Al recivir un dato intento actualizar una label del form2 (Teniendo
activo el form2, y el 1 en hide)

form2.label1.text = stringDatos

NO DA ERROR! pero la label no se entera de nada!!



Tambien he intentado llamar a un public sub del form2 y hacerlo desde
form2 con: me.label1.text = Losdatos
Pero tampoco!!!

Alguien sabe que pasa??

gracias,





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