none
Acceder a los controles de un Form desde otra clase RRS feed

  • Pregunta

  • Hola, tengo el siguiente problema:

    Quiero acceder y establecer propiedades a los controles de un formulario desde una clase, pero cuando intento comunicarme con el control, este no me aparece.

    En Visual Basic no tengo ningún problema con esto, ya que basta con escribir el siguiente código:

    Form1.Label1.Text = "TEXTO"

    Y en pocas palabras, necesito saber la forma de hacer el código anterior, pero en C#

    Gracias :)

    miércoles, 11 de diciembre de 2013 21:25

Respuestas

  • hola

    sera que el metodo lo defines como static ?

    en ese caso seria

    Class1.Metodo1(this);

    o sea directo el nombre de la clase sin instanciarla

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Omar Ortiz jueves, 12 de diciembre de 2013 16:12
    miércoles, 11 de diciembre de 2013 23:36
  • hola

    pero tendrias que tener desde la clase la instancia del formulario, o sea debes pasar por parametro esa instancia

    public void Metodo1(Form frm){

       frm.Label.Text = "TEXTO";

    }

    entonces desde el form haces

    Class1 cls = new Class1();

    cls.Metodo1(this);

    ese this pasa la instancia del form, sin la instancia no podras lograr lo que planteas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 11 de diciembre de 2013 22:01

Todas las respuestas

  • hola

    pero tendrias que tener desde la clase la instancia del formulario, o sea debes pasar por parametro esa instancia

    public void Metodo1(Form frm){

       frm.Label.Text = "TEXTO";

    }

    entonces desde el form haces

    Class1 cls = new Class1();

    cls.Metodo1(this);

    ese this pasa la instancia del form, sin la instancia no podras lograr lo que planteas

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    miércoles, 11 de diciembre de 2013 22:01
  • Gracias,  veo que el codigo es útil, pero se me presenta un problema en la última línea, no puedo hacer referencia a "Metodo1", porque me informa un error diciendo "No se puede obtener acceso al miembro "Class1.Metodo1" con una referencia de instancia, califíquelo con un nombre de tipo en su lugar".

    No sé realmente que esté haciendo mal...

    Gracias :D

    miércoles, 11 de diciembre de 2013 22:34
  • hola

    sera que el metodo lo defines como static ?

    en ese caso seria

    Class1.Metodo1(this);

    o sea directo el nombre de la clase sin instanciarla

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Omar Ortiz jueves, 12 de diciembre de 2013 16:12
    miércoles, 11 de diciembre de 2013 23:36
  • Quizás no has puesto los controles con la propiedad "Public"

    Puedes hacer también lo siguiente en la clase del formulario:

    public string TextoFormulario{ get{ return Label1.Text;} set{ Label1.Text=value;}}

    jueves, 12 de diciembre de 2013 10:50
  • Hola

    Espero que las soluciones que te han proporcionado sean capaces de resolver tu consulta, de lo contrario te pido de favor desmarques la respuesta y nos lo hagas saber, esto se hace para tener un mayor control sobre los foros.

    Saludos


    <EL CONTENIDO SE PROVEE "COMO ES" SIN GARANTÍA DE NINGÚN TIPO, ASÍ SEA EXPRESA O IMPLÍCITA>
     
    Gracias
     
    MSDN/TechNet Soporte Comunidades
     
    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.
    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    jueves, 12 de diciembre de 2013 16:17
  • ... la parte contratante de la primera parte será considerada la parte contratante de la primera parte
    domingo, 22 de septiembre de 2019 9:20
  • No por poner 100 veces la misma respuesta imprecisa va a ser mas precisa...
    domingo, 22 de septiembre de 2019 9:30