none
controles en tiempo de ejecucion RRS feed

  • Pregunta

  • Tengo un formulario donde creo botones en tiempo de ejecucion y los pongo en un panel (panel1) y los valores de esos controles vienen de una tabla que se llama secciones

    ahora bien cada una de esas secciones tienen varios articulos que pertenecen a esa seccion

    ejemplo

    Seccion jabon        Seccion farmacia

    ace                       Raid

    palmolive              fluid gas

    dove                     Mata moscas

    ok, recuerda que ya tengo los dos botones que pertenecen a las secciones Jabon y Farmacia en un panel, pero quiero que al darle click encima del boton jabon se cree en tiempo de ejecucion otros botones con los valores de los articulos en este caso ace, palmolive, dove en el otro panel   y cuando le de click al boton farmacia se muestren entonces los valores de los articulos Raid, Fluid gas y Mata moscas en otro panel.......  gracias

    • Cambiado Enrique M. Montejo martes, 13 de mayo de 2014 18:53 Pregunta sobre controles de Windows Forms.
    lunes, 19 de agosto de 2013 20:36

Todas las respuestas

  • hola

    no evaluaste usar

    DataRepeater Control for Windows Forms

    con este podrias crear un template para los articulos o secciones y mostrar los datos sin teneer que crear controles dinamicos

    creo que seria mucho mas simple de implementar lo que planteas, solo aplcias la query y asignas el datapsurce para visualizar

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 19 de agosto de 2013 20:43
  • Vi el ejemplo mas o menos pero no creo que eso es lo que yo estoy buscando, gracias

    miércoles, 21 de agosto de 2013 12:14
  •  'Devuelve la cantidad de Secciones que se van a usar con botones en tiempo de ejecucion segun los datos de la tabla secciones
        Private Function ObtenerDatos_Secciones_Table() As DataTable
            Using cnn As New SqlConnection(cadenaconexion)
                Dim cmd As SqlCommand = cnn.CreateCommand()
                cmd.CommandText = "SELECT * FROM Secciones_Table WHERE Visible = 'True' "
                Dim da As New SqlDataAdapter(cmd)
                Dim dt As New DataTable("Secciones_Table")
                da.Fill(dt)
                Return dt
            End Using
        End Function
    
        'Metodo para crear los botones en tiempo de ejecucion en la pantalla de ventas
        Public Sub crearbotonessecciones()
            For index As Integer = 0 To Me.ObtenerDatos_Secciones_Table.Rows.Count - 1
                Dim Textolabel As String = Me.ObtenerDatos_Secciones_Table.Rows(index)("Descripcion").ToString
                Dim control As New Label()
                control.Name = "lblse " & (index + 1)
                control.Text = Textolabel
                control.BorderStyle = BorderStyle.Fixed3D
                control.Height = 65
                control.Width = 75
                FlowLayoutPanel1.FlowDirection = FlowDirection.LeftToRight
                FlowLayoutPanel1.Controls.Add(control)
                AddHandler control.Click, AddressOf txt_Click
            Next
        End Sub

    Este codigo es el que uso para crear los controles en tiempo de ejecucion que provienen de la tabla Secciones_Table

    Mi programa es un punto de ventas y existen articulos que no tienen codigo de barra y necesito crear botones para poder venderlos. ya logre poner las secciones (departamento) que necesitaba.

    En la tabla de articulos yo pongo la descripcion y la seccion a donde pertenece ese articulo

    entonces lo que necesito hacer seria algo como esto

    una funcion que me devuelva los articulos que en el campo seccion sean = al text que aparasca en el boton de la seccion osea si hago click en el boton Farmacia que ella busque en la tabla articulos los que coincidan en el campo seccion con el texto del boton, algo parecido a lo que uno hace cuando quiere filtrar un dato por un valor que uno pone en un textbox que se deje llevar por el texto que haya escrito... espero haberme explicado, gracias

    miércoles, 21 de agosto de 2013 13:13