Ejecutar metodo de Form Padre

23/04/2010 - 21:11 por Limberg | Informe spam
Como se puede ejecutar un metodo del formulario padre desde el formulario
hijo?

Saludos,
Limberg.



__________ Information from ESET NOD32 Antivirus, version of virus signature database 5050 (20100422) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
23/04/2010 - 23:02 | Informe spam
"Limberg" wrote in message
news:
Como se puede ejecutar un metodo del formulario padre desde el formulario
hijo?



Entiendo que al decir "padre" e "hijo" te refieres a una simple herencia
de clases (NO un formulario "hijo" de un MDI). En ese caso, el formulario
hijo ve el método del padre como si fuera suyo, con la condición de que no
sea "private". Pero si es como mínimo "protected", el hijo lo puede llamar
por su nombre, o si te gusta más, a través del "this":

this.Metodo(argumento);
Respuesta Responder a este mensaje
#2 Limberg
23/04/2010 - 23:16 | Informe spam
Tengo dos formularios, ninguno MDI, desde Form1 llamo al formulario Form2.
En el Form1 hay un metodo CargarGrid()
Desde el Form2 deseo invocar al metodo CargarGrid() del Form1.

Saludos,
Limberg.




"Alberto Poblacion"
escribió en el mensaje news:O%237%
"Limberg" wrote in message
news:
Como se puede ejecutar un metodo del formulario padre desde el formulario
hijo?



Entiendo que al decir "padre" e "hijo" te refieres a una simple herencia
de clases (NO un formulario "hijo" de un MDI). En ese caso, el formulario
hijo ve el método del padre como si fuera suyo, con la condición de que no
sea "private". Pero si es como mínimo "protected", el hijo lo puede llamar
por su nombre, o si te gusta más, a través del "this":

this.Metodo(argumento);



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 5050 (20100422) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com








__________ Information from ESET NOD32 Antivirus, version of virus signature database 5050 (20100422) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
Respuesta Responder a este mensaje
#3 Leandro Tuttini
24/04/2010 - 06:03 | Informe spam
hola

hace tiempo arme un articulo con respecto a este tema, por ahi te sea
de utilidad

C# – Comunicar formularios MDI
http://ltuttini.blogspot.com/2009/0...s-mdi.html

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

como veras si trabjaas com formualarios MDI cambia un poco la
implementacion, pero la tecnica es la misma

saludos
Respuesta Responder a este mensaje
#4 Alberto Poblacion
24/04/2010 - 08:37 | Informe spam
"Limberg" wrote in message
news:
Tengo dos formularios, ninguno MDI, desde Form1 llamo al formulario Form2.
En el Form1 hay un metodo CargarGrid()
Desde el Form2 deseo invocar al metodo CargarGrid() del Form1.



Ah, eso eso es distinto, no son padre e hijo, simplemente has abierto uno
desde el otro. En ese caso lo que necesitas es hacerle llegar al Form2 una
referencia a la instancia del Form1 que lo abrió. Un buen sitio para hacerlo
es en el constructor. Por ejemplo, al abrir el Form2, lo puedes abrir asi:

Form2 f = new Form2(this);
f.Show();

Observa el "this", que es una referencia al formulario que está haciendo la
apertura (el Form1, supuestamente). Este dato hay que recibirlo y guardarlo
en el Form2:

public class Form2:Form
{
private Form1 padre;
public Form2(Form1 padre)
{
InitializeComponent();
this.padre = padre;
}
...
}

Ahora ya, cuando quieras llamar a un método del Form1 desde este Form2,
basta con que lo llames a través de esa referencia "padre" que hemos
guardado en una variable privada:

padre.CargarGrid();

Por supuesto, el método CargarGrid tiene que tener visibilidad suficiente,
por lo que lo tienes que declarar como "public" o al menos "internal".
Respuesta Responder a este mensaje
#5 Limberg
24/04/2010 - 19:25 | Informe spam
Gracias Alberto, e lo que estaba buscando.

Limberg.


"Alberto Poblacion"
escribió en el mensaje news:%
"Limberg" wrote in message
news:
Tengo dos formularios, ninguno MDI, desde Form1 llamo al formulario
Form2.
En el Form1 hay un metodo CargarGrid()
Desde el Form2 deseo invocar al metodo CargarGrid() del Form1.



Ah, eso eso es distinto, no son padre e hijo, simplemente has abierto
uno desde el otro. En ese caso lo que necesitas es hacerle llegar al Form2
una referencia a la instancia del Form1 que lo abrió. Un buen sitio para
hacerlo es en el constructor. Por ejemplo, al abrir el Form2, lo puedes
abrir asi:

Form2 f = new Form2(this);
f.Show();

Observa el "this", que es una referencia al formulario que está haciendo
la apertura (el Form1, supuestamente). Este dato hay que recibirlo y
guardarlo en el Form2:

public class Form2:Form
{
private Form1 padre;
public Form2(Form1 padre)
{
InitializeComponent();
this.padre = padre;
}
...
}

Ahora ya, cuando quieras llamar a un método del Form1 desde este Form2,
basta con que lo llames a través de esa referencia "padre" que hemos
guardado en una variable privada:

padre.CargarGrid();

Por supuesto, el método CargarGrid tiene que tener visibilidad suficiente,
por lo que lo tienes que declarar como "public" o al menos "internal".


__________ Information from ESET NOD32 Antivirus, version of virus
signature database 5050 (20100422) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com








__________ Information from ESET NOD32 Antivirus, version of virus signature database 5050 (20100422) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida