Modificar botones desde clase o funcion

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • Modificar botones desde clase o funcion

    Código:
    Ver imagen en archivo adjunto
    http://www.foro.vb-mundo.com/attachm...1&d=1410475015

    Hola a todos

    Tengo varios formularios con muchos botones en cada uno de ellos
    cada vez que se le da click a un boton cambia la imagen y el nombre del boton
    como son muchos botones genero muchas lineas de codigo similares

    mi pregunta seria

    puedo enviar el nombre del formulario y el nombre del boton a una clase o funcion y que la clase me lo modifique?
    asi solo mandaria llamar la clase en el boton

    ej.
    Código:
    Public Class modiboton ( x as button, y as form){
    
     modificar x en form y
    
     }
    
    button1_click
    
    modiboton(button1,Form1)
    espero me puedan ayudar con esto

    Gracias
    Última edición por javinet; 11-09-2014, 11:41 PM. Razón: puse la imagen en un adjunto y coloqué la etiqueta code :D

  • #2
    Re: Modificar botones desde clase o funcion

    Hola Vikingo024, he movido este hilo a la sección del Foro correspondiente, que es C# .NET / C / C++ - VB-MUNDO - Foro Programacion, ya que vos la publicaste en Visual Basic .NET - VB-MUNDO - Foro Programacion, que es exclusiva para VB.NET®. Esta acción de moderación la realicé teniendo en cuenta el código que publicaste, dicho sea de paso le faltaban las etiquetas CODE correspondientes. Además tuve que colocar la imagen como adjunta dentro de un RAR, ya que pesaba demasiado, por lo cual también tuve que reducir su peso desde 1,32 Mb hasta 0,33 Mb, conservando claro está la calidad de la misma.
    Ahora pasemos al ejemplo que espero te sea útil para resolver tu inquietud. Se me ocurrió que podés usar un manejador de eventos único para todos los botones. El procedimiento que manejará este único evento tendría que estar en una clase aparte para que todos los formularios puedan apuntar hacia ella. Yo la nombré Class1, pero vos podés darle el nombre que más te agrade:
    [highlight=c#]
    public class Class1
    {
    public static void unBotonPulsado(object sender, System.EventArgs e)
    {// necesitamos que sea static para que no sea necesario instanciar la clase para hacer uso de este procedimiento (en C, C++, C# toda función void es considerada procedimiento)
    Interaction.MsgBox("Has hecho clic en el botón " + ((Button)sender).Name + " correspondiente al formulario " + ((Button)sender).FindForm().Name);
    }
    }
    [/highlight]
    Como ves uso MsgBox, que es propio de VB.NET®, por lo tanto tendrías que importar ese espacio de nombres:
    [highlight=c#]
    using Microsoft.VisualBasic; // previamente se necesita referenciar el ensamblado .Net Microsoft.VisualBasic
    using System.Windows.Forms; // necesario si vamos a manipular Controles, como en este caso el Button
    [/highlight]
    Esto del MsgBox es para que veas cómo funciona el ejemplo y la mecánica para manejar los eventos en .Net, pero seguramente una vez tengas tu proyecto solucionado no necesitarías del ensamblado Microsoft.VisualBasic.
    Muy bien, ya tenemos el procedimiento que manejará todos los eventos Click de todos los botones de todos los formularios ¡qué linda es la programación en .Net! ¿verdad?
    Ahora pasemos a cada form; iría algo similar a:
    [highlight=c#]
    private void Form1_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
    {
    foreach (Button btn in this.Controls)
    {
    Interaction.MsgBox("Removiendo evento 'Click' para el botón " + btn.Name + " del formulario " + this.Name);
    btn.Click -= Class1.unBotonPulsado; // con esto removemos del manejador de eventos, el evento Click del botón específico del formulario correspondiente
    }
    }

    private void Form1_Load(System.Object sender, System.EventArgs e)
    {
    foreach (Button btn in this.Controls)
    {
    Interaction.MsgBox("Agregando evento 'Click' para el botón " + btn.Name + " del formulario " + this.Name);
    btn.Click += Class1.unBotonPulsado; // con esto agregamos al manejador de eventos, el evento Click del botón específico del formulario correspondiente
    }
    }
    [/highlight]
    Con este método podemos manejar los eventos Click (y los que deseáramos) de cualquier cantidad de botones y de cualquier número de formularios.
    Lo que queda por decir es que podés usar un switch..case para determinar cuál fue el botón que se pulsó. Para saber el formulario sólo tenés que llamar al método FindForm(), como te muestro en el ejemplo.
    Espero que te haya resultado comprensible mi explicación.
    ¡Saludos y feliz programación!
    Saludos.

    Comentario


    • #3
      Re: Modificar botones desde clase o funcion

      Hola como estas gracias por la respuesta, pero de hecho lo necesitaba en Visual Basic

      igual tratare de acoplar este codigo a VB.net

      Comentario


      • #4
        Re: Modificar botones desde clase o funcion

        Originalmente escrito por Vikingo024 Ver mensaje
        Hola como estas gracias por la respuesta, pero de hecho lo necesitaba en Visual Basic

        igual tratare de acoplar este codigo a VB.net
        ¿Te das cuenta de dónde has publicado tu cuestión? ¿No comprendes que si haces una pregunta en el foro de "C#.NET / C / C++" no puedes esperar que se te responda cómo solucionarlo en VBA?

        Debes repetir tu post en el foro adecuado, para que se te responda adecuadamente. Gracias.
        José María Movilla Cuadrado
        ______________________
        Normas del foro
        www.foro.vb-mundo.com
        www.vb-mundo.com

        Comentario


        • #5
          Re: Modificar botones desde clase o funcion

          Lo publique en visual basic y lo movieron a c

          Comentario


          • #6
            Re: Modificar botones desde clase o funcion

            Pero te lo han movido porque el código que insertas en tu primer mensaje se aproxima más a C# que VBA o VB.NET.

            Sería bueno que aclarases que cosa es ese código.
            Un cordial saludo
            -Acalanto-

            Madrid - España

            Leer detalladamente las normas del foro es una buena forma de comenzar a participar en él. Te llevará unos pocos minutos y el colectivo de usuarios te lo agradecerá. <si no las has leído sigue este enlace>

            Comentario


            • #7
              Re: Modificar botones desde clase o funcion

              Estimados amigos he movido el último mensaje de Vikingo024 desde este tema hacia el foro de VB.NET®: Visual Basic .NET - VB-MUNDO - Foro Programacion, ya que en éste él abrió un nuevo tema pidiendo ayuda y ha aclarado que necesita resolverlo en VB.NET®

              Estaba convencido que el código publicado en un principio por Vikingo024 se refería al lenguaje c#, pero por lo visto me equivoqué.

              Pido disculpas por las confusiones suscitadas.

              Link para enlazar con el tema en VB.NET®:

              http://www.foro.vb-mundo.com/f25/mod...funcion-28303/

              Saludos cordiales.
              Saludos.

              Comentario

              Trabajando...
              X