none
Programar botones en tiempo de Ejecucion vb.net RRS feed

  • Pregunta

  • Buenas tardes gente, tengo otra consulta, solo que esta vez no si ni por donde empezar :/

    quiero, o al menos pretendo crear una formulario en el cual por cada producto (almacenado en una tabla de sql) me genere un botón que me almacene el nombre y el precio (cada producto tiene 4 precios distintos).

    La idea de esto es que al ir generando o insertando mas productos me aparezca un nuevo botón con el producto agregado, esto para el formulario de los pedidos, pretendo ir agregando los botones dentro de un tab-control dividido en cada tab en por categorias. pero no se ni por donde empezar  :(

    de esto tengo la sensación que los botones son en tiempo de ejecución, solo que no se como desarrollarlo, mas que todo no es pregunta, sino ver si alguien me facilita algún material o algún enlace de donde puedo guiarme para poder desarrollarlo

    El proyecto lo estoy desarrollando en vb.net

    sábado, 4 de febrero de 2017 14:37

Respuestas

  • [...] no se ni por donde empezar  :(

    Empieza por hacer el experimento de añadir varios botones dinámicamente en un formulario de prueba. Para eso, vas haciendo "New Button", le pones las propiedades deseadas, y lo añades a la coleccion Controls del contenedor donde quieras tenerlo. Por ejemplo, el contenedor podría ser un Panel:

    For I as Integer = 1 to 10
        Dim b as New Button()
        b.Left = 20
        b.Top = 20+I*30
        b.Text = "Botón " & I
        Panel1.Controls.Add(b)
    Next I
    Una vez que esto funcione y que tengas bien controlada la forma de generar los botones, entonces puedes cambiar el bucle que crea los botones usando la "I" por un bucle que recorra los registros de la base de datos y tome de ella os datos para el botón.


    sábado, 4 de febrero de 2017 16:39

Todas las respuestas

  • [...] no se ni por donde empezar  :(

    Empieza por hacer el experimento de añadir varios botones dinámicamente en un formulario de prueba. Para eso, vas haciendo "New Button", le pones las propiedades deseadas, y lo añades a la coleccion Controls del contenedor donde quieras tenerlo. Por ejemplo, el contenedor podría ser un Panel:

    For I as Integer = 1 to 10
        Dim b as New Button()
        b.Left = 20
        b.Top = 20+I*30
        b.Text = "Botón " & I
        Panel1.Controls.Add(b)
    Next I
    Una vez que esto funcione y que tengas bien controlada la forma de generar los botones, entonces puedes cambiar el bucle que crea los botones usando la "I" por un bucle que recorra los registros de la base de datos y tome de ella os datos para el botón.


    sábado, 4 de febrero de 2017 16:39
  • Hola,

    Lo que alcanzo a entender es que pretendes lograr que cuando se almacene el nuevo registro a la base de datos, generar un botón dinámicamente para ese producto previamente almacenado, ¿entendí mal?

    Veo que te complicas mucho, yo te propongo que le eches un vistazo al control DatGridView. Mandas a guadar los datos a la base, y luego actualizas el control con los nuevos datos. A este control para que te hagas una idea, puedes diseñarlo de esta forma:

    Creo que sigue la lógica que intentas lograr.

    Saludos.


    Antonio Mata


    • Editado A. Mata sábado, 4 de febrero de 2017 19:39
    sábado, 4 de febrero de 2017 17:08
  • Hola Jefry Zelaya,

    Podrías echarle un ojo al siguiente hilo donde se plantea una pregunta similar :

    consulta hacer Botones dinamicos(segun consulta sql)

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    lunes, 6 de febrero de 2017 0:06
  • Claro que cumple con la logia, lo que pasa es que no me di a entender bien, uso datagrid para visualizar y editar lo clientes, asi como tu lo muestras, pero lo de los botones es para el formulario de pedidos o cotizaciones, la idea es crear un boton por cada producto y dividido en categorias almacenado en mi tabla de productos, esto para una interfaz facil de usar.

    no se si me di a entender ahora :)

    lunes, 6 de febrero de 2017 1:27