Static y estas cosas.. ( C# )

Iniciado por Codename!!, 29 Marzo 2010, 12:56 PM

0 Miembros y 1 Visitante están viendo este tema.

Codename!!

Hola amigos! esto trabajando con varios forms, y he tenido que hacer algunos metodos staticos y demas, el problema viene cuando unos componentes del form ( en el que estan) me piden que no sean staticos.

el error que me suelta este:

Error 1 An object reference is required for the non-static field, method, or property 'Test.PanelPrimario.status'


es un simple Status que va cambiando el texto segun voy actualizando cosas y demas.

He probado a intentar acceder a demas componentes del formulario y no puedo desde ese metodo estatico, desde los demas ( que no lo son) no hay problema al acceder..

cual es el problema??
No te dejes mover por las masas, se tu mismo.





raul338

Los metodos estaticos son precisamente para que puedas acceder sin referencias a la clase. Como la clase MessageBox o Console. pero los metodos estaticos solo pueden acceder a propiedades estaticas (mala practica :P), los metodos comunes pueden acceder a los 2.

Una solucion que se me ocurre, es que te armes un sub main principal (o un formulario que controle todo) y de ahi pasas los valores entre referencias. Algo asi (es pseudo codigo):

Código (csharp) [Seleccionar]

int main() { // Esto se parece a C xD
   FormPrincipal frmPrincipal = new FormPrincipal();
   if (frmPrincipal.ShowDialog() == DialogResult.OK) {
       FormularioQueHaceElTrabajo frmWorker = new FormularioQueHaceElTrabajo();
       frmWorker.Parametros = frmPrincipal.ParametrosElegidos; // Aca pasamos los datos mediante propiedades
       frmWorker.Trabajar();
       frmWorker.Dispose();
   }
   frmPrincipal.Close();
   frmPrincipal.Dispose();
}


Se entiende? Claro, asi es simple, si quieres hacer algo mas "complejo" puedes trabajar con eventos y llamarlos desde el sub main y entrar un bucle infinito (ver la clase program que se crea cuando hacemos un proyecto de formularios) y listo :P salir cuando el form lo indique

Codename!!

Gracias! mirare a ver que es lo que me invento jeje
No te dejes mover por las masas, se tu mismo.