Usar una funcion que esté en el formulario activo...

25/02/2006 - 01:04 por Lord Voldemort | Informe spam
Hola

Estoy intentando ejecutar una funcion de un formulario desde mi
MDIPrincipal, he intentado con Me.ActiveMdiChild.NombreFuncion pero no
funca,


otra explicacion de mi problema...
.Como puedo ejecutar una funcion que esta en el formulario activo desde
cualquier parte que no sea el mismo formulario activo asumiendo que no se el
nombre del formulario activo..

seria algo asi como...

MiFormulario.BuscarSaldos



un gran saludo de

Lord Voldemort..
Cerquita del mismisimo infierno..
LordVoldemort8@@@Gmail.com

Mis armas Visual Estudio 2003 y SQLServer 2000

Preguntas similare

Leer las respuestas

#1 Jorge Serrano [MVP VB]
25/02/2006 - 10:13 | Informe spam
Hola Lord,

hay un hilo de ayer creo recordar de nombre "Actualizar Formulario desde
otro formulario", que trata de esto mismo, referenciar una función de un
formulario desde otro y ejecutarla.

En sí, uno de los formularios, debe tener una variable con la referencia del
otro, y al cargar el primer formulario el segundo, este segundo tomar la
referencia del primero para poder invocar los métodos o funciones públicas
del primero.

Respecto al formulario activo, debes recorrer los formularios y saber cuál
está activo (ahora no recuerdo bien si era ActiveForm) y así, ejecutar en ese
su función.

Si son muchos formularios que tienen el mismo método o función, entonces te
sugiero crear un ArrayList que almacene las referencias de los formularios.

Espero haberme explicado.

Un saludo.

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Weblog de Jorge Serrano
http://weblogs.golemproject.com/jorge/


"Lord Voldemort" wrote:

Hola

Estoy intentando ejecutar una funcion de un formulario desde mi
MDIPrincipal, he intentado con Me.ActiveMdiChild.NombreFuncion pero no
funca,


otra explicacion de mi problema...
..Como puedo ejecutar una funcion que esta en el formulario activo desde
cualquier parte que no sea el mismo formulario activo asumiendo que no se el
nombre del formulario activo..

seria algo asi como...

MiFormulario.BuscarSaldos



un gran saludo de

Lord Voldemort..
Cerquita del mismisimo infierno..
LordVoldemort8@@@Gmail.com

Mis armas Visual Estudio 2003 y SQLServer 2000



Respuesta Responder a este mensaje
#2 Juan Carlos Flores
02/03/2006 - 14:21 | Informe spam
Jorge yo estoy intentando lo mismo sin resultados, pero no comprendo tu
respuesta.

Tengo un form MDI y tengo un form child.

En el form child he creado una funcion Imprimir, la cual obviamente
sirve apra imprmir contenido del formulario, en este caso un grid. Este
mismo nombre de funcion tengo en varios forms, afin de normalizar funciones.

Tengo un dockpanes al estilo de las Herramientas de desarrollo del ide
de VB .NEt, (ese que se esconde y sale al acercar el mouse), en este
panel entre muchas cosas, tengo un item para imprimir, el cual debe de
correr la funcion Imprimir la funcion imprimir de cualquier form activo,
en caso de que al tenga (ojo, que tambien debo de averiguar si la tiene).

He intentado en el form MDI con:
me.ActiveMDIChild.Imprimir - NADA

Tambien he intentado con:
Dim MifrmChild as new form=me.ActiveMDIChild
MifrmChild.Imprimir() NADA

En ambos me da error de syntaxis debido a que no tengo una instancia del
form hijo abierta (pero como tenerla, si no se cual es o como se llama).

En otros lenguajes es tan simple como _Screen.ActiveForm.Imprimir. No
habrá manera de hacer algo así ?

Si quiero usar una propiedad o funcion del ChildForm de las que vienen
por default en el form, no hay problema.

Dim MifrmChild as new Form=me.ActiveMDIChild
MiFrmChild.Close()

Porque la instancia de form se crea basada en un form comun.

Espero haberme explicado... la intencion no es correr algo del MDI form
desde el Child form... (Que sria algo teoricamente como
me.Parent.NombreFuncion) la idea es correr una funcion del Child form,
desde el MDI form.

Gracias por su apoyo.


JCF.




Jorge Serrano [MVP VB] escribió:
Hola Lord,

hay un hilo de ayer creo recordar de nombre "Actualizar Formulario


desde otro formulario", que trata de esto mismo, referenciar una función
de un formulario desde otro y ejecutarla.

En sí, uno de los formularios, debe tener una variable con la


referencia del otro, y al cargar el primer formulario el segundo, este
segundo tomar la referencia del primero para poder invocar los métodos o
funciones públicas del primero.

Respecto al formulario activo, debes recorrer los formularios y saber


cuál está activo (ahora no recuerdo bien si era ActiveForm) y así,
ejecutar en ese su función.

Si son muchos formularios que tienen el mismo método o función,


entonces te sugiero crear un ArrayList que almacene las referencias de
los formularios.

Espero haberme explicado.

Un saludo.






Jorge Serrano [MVP VB] escribió:
Hola Lord,

hay un hilo de ayer creo recordar de nombre "Actualizar Formulario desde
otro formulario", que trata de esto mismo, referenciar una función de un
formulario desde otro y ejecutarla.

En sí, uno de los formularios, debe tener una variable con la referencia del
otro, y al cargar el primer formulario el segundo, este segundo tomar la
referencia del primero para poder invocar los métodos o funciones públicas
del primero.

Respecto al formulario activo, debes recorrer los formularios y saber cuál
está activo (ahora no recuerdo bien si era ActiveForm) y así, ejecutar en ese
su función.

Si son muchos formularios que tienen el mismo método o función, entonces te
sugiero crear un ArrayList que almacene las referencias de los formularios.

Espero haberme explicado.

Un saludo.

Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
02/03/2006 - 16:15 | Informe spam
Tienes dos opciones, crear un formulario base con los metodos que debes
llamar y los sobreescribes segun necesites en cada formulario o implementar
en los formularios una interface con esos metodos. Por ejemplo:

Interface IImprimir
Sub Imprimir()
End Interface

Class MiForm
Inherits Form
Implementes IImprimir

' El codigo

End Class

Y para llamarlo deberas primero ver si el formulario activo implementa esta
interface (o deriva de la clase base) y hacer un cast:

If TypeOf ActiveMDIChild Is IImprimir Then
DirectCast(ActiveMDIChild, IImprimir).Imprimir()
Else
MessageBox.Show("No se puede imprimir el formulario activo.")
End If

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#4 Juan Carlos Flores
02/03/2006 - 17:43 | Informe spam
Gracias Eduardo

Mu funcionó d epelos.
Llevaba dias con eso y estaba ya muy molesto.

Saludos


JCF.

Eduardo A. Morcillo [MS MVP VB] escribió:
Tienes dos opciones, crear un formulario base con los metodos que debes
llamar y los sobreescribes segun necesites en cada formulario o implementar
en los formularios una interface con esos metodos. Por ejemplo:

Interface IImprimir
Sub Imprimir()
End Interface

Class MiForm
Inherits Form
Implementes IImprimir

' El codigo

End Class

Y para llamarlo deberas primero ver si el formulario activo implementa esta
interface (o deriva de la clase base) y hacer un cast:

If TypeOf ActiveMDIChild Is IImprimir Then
DirectCast(ActiveMDIChild, IImprimir).Imprimir()
Else
MessageBox.Show("No se puede imprimir el formulario activo.")
End If

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