C sharp - Problemas Funciones estaticas URGENTE!!!

 
Vista:

Problemas Funciones estaticas URGENTE!!!

Publicado por CroMag (1 intervención) el 04/12/2006 03:54:54
Tengo la siguiente funcion

public static void Datos()
{

a = frmCaseta.bicho;

barSalud.Value = a.VerSalud();
barFelicidad.Value = a.VerFelicidad();
barHambre.Value = a.VerHambre();


}

Es estatica para poder llamarla desde otro formulario ya que está en el principal, se supone que tiene que modificar valores en una barra de progreso pero al ser static no puedo acceder a datos del mismo formulario, pero si la declaro publica si puedo, pero no puedo llamarla desde otro formulario, esa es mi disyuntiva.Alguien me puede ayudar?¿.Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas Funciones estaticas URGENTE!!!

Publicado por fisa (87 intervenciones) el 04/12/2006 13:05:18
Lo que tenes que hacer es declararla como publica y no estatica, pero para accederla desde otro formulario tenes que tener alguna referencia a la instancia del formulario que tiene el metodo.

Un ejemplo seria que en el constructor de tu formulario, pases como parametro la instancia del formulario que tiene el metodo, y que guardes esa referencia en algun objeto, para despues poder usarlo.
Seria asi:

FormA es el formulario que tiene el metodo

FormB es el formulario desde donde llamas al metodo de FormA

En el FormB tendrias este codigo:

private MiSolucion.FormA MiFormA;

public FormB(MiSolucion.FormA formA)
{
InitializeComponent();
this.MiFormA = formA;
}

con eso despues desde cualquier lugar de tu FormB vas a poder llamar al metodo del FormA asi:

MiFormA.Datos();

Ademas, en el FormA cuando creas una instancia para mostrar el FormB, ahora vas a tener que pasarle como parametro el FormA (si es desde el FormA, seria "this", si es desde otro formulario, la referencia que tengas a la instancia del FormA).

Ejemplo desde el FormA:

MiSolucion.FormB MiFormB = new MiSolucion.FormB(this);

Ejemplo desde otro formulario

MiSolucion.FormB MiFormB = new MiSolucion.FormB(MiFormA);

Espero que entiendas, cualquier cosa preguntame
Chau
Suerte!

Fisa
Correo: [email protected]
MSN: [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar