Título: Como acceder a controles de un formulario desde otra clase? Publicado por: Rakzo-Fimbres en 29 Junio 2008, 23:01 pm En Visual Basic.NET no hay problema, ya que cuando estamos en una clase solamente hacemos esto (un ejemplo):
Código: 'ProgressBar1.Value = 20 'Si hacemos esto, no reconocera el objeto, tendriamos que agregar... Pero al hacer lo mismo en C#, no reconoce las propiedades de la progressbar ni el objeto.. cómo lo puedo solucionar? Título: Re: Como acceder a controles de un formulario desde otra clase? Publicado por: SeniorX en 30 Junio 2008, 01:06 am Yo lo que hago es en la clase form1 hago un:
Código: Funciones fn = new Funciones(); Donde Funciones es la clase que tiene una funcion que se llama valorBarra que retorna un int. Ojala quede claro! Sino pregunta Suerte! Título: Re: Como acceder a controles de un formulario desde otra clase? Publicado por: Rakzo-Fimbres en 30 Junio 2008, 01:23 am O sea haces una funcion?
A lo mejor me expliqué mal men.. Aver un ejemplo.. Digamos que tenemos "Form1" y agregamos una clase "Clase1" En Form1 agregué un botón btnComenzar y con un Text = "Comenzar" Ahora, trabajo con la clase, y al estar allí necesito cambiar el valor Text de btnComenzar a: Código: btnComenzar = "Pausar" Pero al escribir btnComenzar, me aparece el error: El nombre "btnComenzar" no existe en el contexto actual Es decir como acceder a los controles del Form1 desde la Clase1 SenirX me podrias dar un ejemplo más claro por favor. Gracias.. Título: Re: Como acceder a controles de un formulario desde otra clase? Publicado por: MANULOMM en 30 Junio 2008, 06:14 am claro, no puedes acceder asi de facil, pues cuando hace esto:
Código: Form A = new Form(); Atentamente, Juan Manuel Lombana Medellín - Colombia Título: Re: Como acceder a controles de un formulario desde otra clase? Publicado por: zheo en 22 Julio 2008, 12:19 pm El problema que tienes suena a que en VB.NET -dios sabe por qué oscura razón- si no especificas el ámbito de las variables miembra éstas se consideran publicas. En C# por el contrario son privadas por defecto -lo que debería ser lógico y normal... di tú que VB nunca fue muy lógico ni muy normal.
Por tanto en VB puedes hacer algo como form1.BarraProgreso.Value y en C# no, porque en el primero tienes acceso público a la variable miembro, y en el segundo no Si lo que quieres es acceder desde una clase a una variable miembro de otra clase y modificarla tienes muchas soluciones. La más sencilla es establecer la variable miembro como pública, algo realmente chapucero. También puedes exponer la variable miembro como una propiedad, pero en este caso sería como establecerla pública pero escribiendo más. Algo un poco más elegante es exponer en tu clase form1 el dato que necesitas de la variable miembro como una propiedad (o método), por ejemplo: Código: public class Form1 : System.Windows.Forms.Form y entonces podrías hacer: Código: Form1 form1 = new Form1(); Pero en tu caso particular (acceder a form1 desde otra clase) tendrías que tener una referencia a la instancia de form1 para poder acceder a la propiedad que acabas de crear. Eso lo puedes hacer pasándo form1 como referencia en el constructor de la clase y guardándola en una variable miembro privada a la clase (Dependency Injection): Código: public class class1 Título: Re: Como acceder a controles de un formulario desde otra clase? Publicado por: Rakzo-Fimbres en 22 Julio 2008, 21:13 pm Gracias a todos por su ayuda, he solucionado mi problema.
Tema cerrado :P |