none
Como llamar una checBox de un form a otra clase RRS feed

  • Pregunta

  • Quisiera saber como llamar a mi checkBox1 que tengo en una clase a otra clase para poner false la checkBox1 y en la nueva clase checkbox1 true y entonces al apretar un boton de la clase principal activar mi checkBox1
    miércoles, 19 de diciembre de 2018 0:28

Respuestas

  • hola

    a que haces referencia cuando dices "clase"? es un

    public class Class1{

    }

    o en realidad es un form

    Ya sea form o class debes tener la instancia de esa otra clase/form para poder acceder a la funcionalidad que exponga

    >>entonces al apretar un boton de la clase

    que? boton tiene una clase, no es un form? expesat de forma correcta sino confunde

    para comnicar formulario analiza el articulo que escribi como lograrlo

    Comunicar Formularios

    veras que la forma correcta es teniendo la instancia del otro form, pero desacoplando usando una interfaz

    asi accedes a la funcionalidad expuesta, pero nunca directo a un control, sino a una propiedad o metodo public que esta exponga

    analiza el articulo alli lo explico en detalle

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 19 de diciembre de 2018 11:09

Todas las respuestas

  • [...] mi checkBox1 que tengo en una clase a otra clase [...]

    El problema es que hay un error de concepto aquí: no tienes el checkbox en una clase. Lo tienes una instancia de una clase. La clase lo define. Pero la clase se puede instanciar muchas veces, y cada una de las instancias contiene un nuevo checkbox, y cada uno de ellos puede tener un valor diferente. Por lo tanto, para usar el checkbox, tienes que saber cuál es la instancia en la que se encuentra, no es suficiente con que sepas cuál es la clase que lo define. Incluso aunque tú sepas que solo has instanciado la clase una única vez, el compilador no lo sabe, y requiere que escribas la instancia.

    Por ejemplo, si el checkbox se llama checkbox1 y está definido dentro de Form1, no basta con saber esto para poder acceder. Hace falta saber cuál de las instancias de Form1 es la que quieres usar (aunque solo exista una única instancia). Supongamos que la clase Form1 la instanciaste así:

    Form1 frm = new Form1();

    Entonces Form1 es la clase y frm es la instancia.

    Para acceder desde otro sitio al checkbox1 hay que usar "frm" y no "Form1":

    bool valor = frm.checkBox1.Checked;

    Obviamente, eso implica que la variable "frm" no hay que perderla, tienes que hacerla llegar desde el sitio donde la creaste hasta el sitio donde la quieras usar. Como es lógico, la forma de hacer esto dependerá de cuál sea el circuito que hayas seguido para llegar desde un sitio hasta el otro.

    • Propuesto como respuesta Jorge TurradoMVP miércoles, 19 de diciembre de 2018 9:32
    miércoles, 19 de diciembre de 2018 7:56
    Moderador
  • hola

    a que haces referencia cuando dices "clase"? es un

    public class Class1{

    }

    o en realidad es un form

    Ya sea form o class debes tener la instancia de esa otra clase/form para poder acceder a la funcionalidad que exponga

    >>entonces al apretar un boton de la clase

    que? boton tiene una clase, no es un form? expesat de forma correcta sino confunde

    para comnicar formulario analiza el articulo que escribi como lograrlo

    Comunicar Formularios

    veras que la forma correcta es teniendo la instancia del otro form, pero desacoplando usando una interfaz

    asi accedes a la funcionalidad expuesta, pero nunca directo a un control, sino a una propiedad o metodo public que esta exponga

    analiza el articulo alli lo explico en detalle

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 19 de diciembre de 2018 11:09