Saltar al contenido principal

 none
Acceder a una clase RRS feed

  • Pregunta

  • Hola:

    Tengo un Form1 con C# 2013. Incrusto un Button1 y un label1.

    En el proyecto añado un nuevo elemento que se llama Clase1.cs y le llamo cambiando su nombre a Libreria_5x7.

    Su código vacío es:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace LCD_HD44780
    {
        class Libreria_5x7
        {
            // Código aquí.
        }
    }

    En el Form1 o principal, tengo un label1. Lo que quiero hacer es poner el código dentro la la clase Libreria_5x7.cs.

    Label1.Text = "Hola";

    ¿Qué debo hacer para que el botón encuentre esa clase y ejecute el código en su interior?

    Saludo.


    http://electronica-pic.blogspot.com

    sábado, 13 de septiembre de 2014 14:55

Respuestas

  • hola

    lo idea es que si creas una clase, esta tenga cierta responsabilidad que no genere dependencias con otro componente, en este caso el form o sus controles

    quizas lo ideal seria usar algo como ser

    public class Libreria_5x7 { public string DecirHola() { return "Hola"; } }

    y desde el form lo usas

    Libreria_5x7 obj = new Libreria_5x7();
    
    Label1.Text = obj.DecirHola();

    asi encapsulas funcionalidad en la clase y no acoplas con el form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP sábado, 13 de septiembre de 2014 17:27
    • Marcado como respuesta Metaconta sábado, 13 de septiembre de 2014 17:51
    sábado, 13 de septiembre de 2014 17:27

Todas las respuestas

  • hola

    parto comentando que lo que quieres realizar no es buena idea, definir una clase para acceder a un control no se recomienda

    pero podrias hacer algo como esto

    using System.Window.Form;

    public class Libreria_5x7 { private Label _lbl; public Libreria_5x7(Label lbl){ _lbl = lbl; } public void DecirHola() { _lbl.Text = "Hola"; } }


    desde tu codigo lo usarias de esta forma

    Libreria_5x7 obj = new Libreria_5x7(Label1);
    
    obj.DecirHola();

    como veras desde el form le asignas la instancia del del control, NUNCA la accedes directo ni el pasas la instancia del form, no es bueno acoplar de esa forma una clase

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 13 de septiembre de 2014 15:26
  • Que complicado.

    En otras palabas,. TEngo mucho smétodos o procesos metido en el Form principal y quiero llevarlo a un archivo a parte. A lo mejor no es el indicado el que nombré. Sólo eso.

    Saludo.


    http://electronica-pic.blogspot.com

    sábado, 13 de septiembre de 2014 16:37
  • hola

    lo idea es que si creas una clase, esta tenga cierta responsabilidad que no genere dependencias con otro componente, en este caso el form o sus controles

    quizas lo ideal seria usar algo como ser

    public class Libreria_5x7 { public string DecirHola() { return "Hola"; } }

    y desde el form lo usas

    Libreria_5x7 obj = new Libreria_5x7();
    
    Label1.Text = obj.DecirHola();

    asi encapsulas funcionalidad en la clase y no acoplas con el form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    • Editado Leandro TuttiniMVP sábado, 13 de septiembre de 2014 17:27
    • Marcado como respuesta Metaconta sábado, 13 de septiembre de 2014 17:51
    sábado, 13 de septiembre de 2014 17:27