Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/08/2010, 07:52
jmagago84
 
Fecha de Ingreso: agosto-2007
Mensajes: 106
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Llamar a un método de un form desde otro form

Gracias Kyha

no he podido seguir muy bien ese post, pues hablan en VB y yo estoy programando con C#.

De todas formas lo conseguí, aunq no sé si es muy eficiente, aunq funcionar funciona. Pongo como lo he hecho pero en un ejemplo más sencillo con la misma dinámica para que podais opinar.

Tengo dos form, Form1 y Form2:

----------------------------------------------------------------------------------------------------
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Form2 form2 = new Form2(this);
form2.Show();
}

public void btnHola_Click(object sender, EventArgs e)
{
MessageBox.Show("Hola!!!");
}
}
}
-------------------------------------------------------------------------------------------------

y el Form2:
--------------------------------------------------------------------------------------------------
namespace WindowsFormsApplication1
{
public partial class Form2 : Form
{
Form1 form1;

public Form2(Form1 form1)
{
InitializeComponent();
this.form1 = form1;
}

private void btnHola2_Click(object sender, EventArgs e)
{
(*) form1.btnHola.PerformClick();
}
}
}
---------------------------------------------------------------------------------------------

Digamos que este es el ejemplo simplificado de lo que yo estoy haciendo.
Yo tengo un formParent abierto (aquí sería Form1), pero antes se abre un form (aquí sería Form2) en el que puedo elegir un formChild, entonces al darle al botón del Form2 se debe crear un formChild del Fom1 llamando a un evento que tiene el FormPadre en el menu Abrir-->Nuevo.

Es un poco lioso pero creo que no es dificil de entender.

(*)Aqui, he leido en otros post que pone:
form1.btnHola.btnHola_Click(this, null); o...... form1.btnHola_Click(this, this);

lo he probado y tambien funciona.

¿Alguna opinión?

Gracias!.