Saltar al contenido principal

 none
¿Como usar Controles de un formulario dentro de una clase? (C#) RRS feed

  • Pregunta

  • Necesito usar controles de un formulario que tengo, dentro de una clase, al intentar cambiar una propiedad o algo relacionado con el, además, al intentar un código relacionado con controles, marca error.

    Ejemplo:

    PictureBox Pic = new PictureBox();
    panel1.BackColor = Color.Gray;
    
    
    
    

    Marca error en cualquiera de los 2 códigos o relacionados.

    martes, 15 de mayo de 2018 22:14

Todas las respuestas

  • "Marca error" no es útil.  Muestre el error, exacto y preciso.

    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    martes, 15 de mayo de 2018 22:15
  • El error es “The name ‘panel1’ does not exist in the current context”
    martes, 15 de mayo de 2018 22:20
  • Ok, eso es un nombre que el diseñador de Visual Studio creó para usted cuando usted agregó el panel.  No existe más allá de los confines del formulario.

    Si por alguna razón (probablemente más loca que no) necesita crear una clase que acceda controles de Windows Forms, deberá recibir los controles necesitados de alguna manera.  Yo probablemente utilizaría el constructor de la clase.

    public class MiClase
    {
        public Panel Panel { get; set; }
    
        public MiClase(Panel elPanel)
        {
            Panel = elPanel;
        }
    
        //Ahora el panel se accede via la propiedad Panel.
        public void CambiarColorDeFondo(Color color)
        {
            Panel.BackColor = color;
        }
    }

    Ah, y se utilizaría así:

    protected void Form_Load(object sender, EventArgs e)
    {
        MiClase c = new MiClase(panel1);
        c.CambiarColorDeFondo(Color.Gray);
    }
    


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT


    • Editado webJose martes, 15 de mayo de 2018 22:55
    martes, 15 de mayo de 2018 22:53