Llamar a una funcion desde otro form

18/04/2010 - 18:37 por Juan | Informe spam
Hola tengo 2 forms uno llamado principal y otro main, quisiera saber como
puedo hacer para llamar desde main a la funcion load de principal algo como
esto

Call frmPrincipal_Load(Me, New System.EventArgs)

Preguntas similare

Leer las respuestas

#1 Leandro Tuttini
18/04/2010 - 20:41 | Informe spam
hola

algo que estaria bueno que especifiques es quien llama a quien, o sea
si es una comunicacion padre-hijo o hijo-padre, ya que las tecnicas
varian de uno a otro

si la idea es comunica el form hijo invocando un metodo en el padre,
puedo comentarte que pdorias hacer uso de interfaces para desacoplar
la comunicacion

Comunicar formularios de forma desacoplada
http://ltuttini.blogspot.com/2009/0...forma.html

como veras no llamas a un metodo de evento, sono que usas un metodo
definido por la interfaz para pdoer comunicarlos

saludos
Respuesta Responder a este mensaje
#2 Alberto Poblacion
18/04/2010 - 22:35 | Informe spam
"Juan live com>" <efer<arrobapunto> wrote in message
news:
Hola tengo 2 forms uno llamado principal y otro main, quisiera saber como
puedo hacer para llamar desde main a la funcion load de principal algo
como esto

Call frmPrincipal_Load(Me, New System.EventArgs)



El problema es que estás confundiendo la _instancia_ del form con la
_clase_ del form. Cuando dices que "tienes dos forms", lo que quieres decir
probablemente es que en el código fuente de tu programa has definido dos
CLASES de forms. Cada una de esas dos clases se puede instanciar cualquier
número de veces. Por ejemplo, cero veces, en cuyo caso el form no se ve en
ningún sitio (aunque está definido en el fuente), y NO SE PUEDE llamar a un
método de instancia como el frmPrincipal_Load (ya que no existe ninguna
instancia). También se podría instanciar, por ejemplo, cinco veces, y
hacerles a todas un Show(), en cuyo caso se verían en pantalla cinco copias
del form, en principio todas iguales, pero que al ir trabajando con ellas
tendrían distintos datos. Al llamar a un método del form, hay que
especificar a cuál de esas 5 copias pertenece el método, porque no da lo
mismo (ya que tienen distintos datos). Incluso aunque en un momento dado
sólo haya una única instancia, el compilador no lo sabe, y por tanto sigue
siendo necesario indicar la instancia para poder llamar a un método. Así
que, en resumidas cuentas, es imprescindible disponer de una variable que
contenga una referencia a la instancia del formulario para poder llamar a
cualquier función del mismo. Normalmente, esa variable se guarda en el
momento de crear el formulario. Por ejemplo, si lo creas asi:

Dim MiFormulario as New frmPrincipal()
MiFormulario.Show()

entonces esa variable "MiFormulario" tienes que asegurarte de conservarla en
algún sitio en el que sea accesible cuando quieras llamar a la función
deseada, porque hay que llamarla por mediación de dicha variable:

MiFormulario.frmPrincipal_Load(null, EventArgs.Empty)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida