Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

¿Como trabajar con controles creados en tiempo de ejecución?

Estas en el tema de ¿Como trabajar con controles creados en tiempo de ejecución? en el foro de Visual Basic clásico en Foros del Web. Saludos, estoy desarrollando una aplicación en VB 2005 y tuve la necesidad de crear unos combobox en tiempo de ejecución, hasta ahi esta todo bien, ...
  #1 (permalink)  
Antiguo 28/10/2008, 08:38
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
¿Como trabajar con controles creados en tiempo de ejecución?

Saludos, estoy desarrollando una aplicación en VB 2005 y tuve la necesidad de crear unos combobox en tiempo de ejecución, hasta ahi esta todo bien, pero ahora la pregunta mia es: ¿Como puedo trabajar con ellos?, es decir, quiero que al seleccionar un elemento de algun combo creado suceda algo, como hago eso?

Aquí les pongo el codigo de como creé los controles:

Código:
Private Sub ControlesParaFacturas(ByVal ListFacturas As ListBox)

        Dim Num As Integer = ListFacturas.Items.Count
        Dim xIniTB As Integer = 34
        Dim yIniTB As Integer = 235
        Dim xIniCB As Integer = 154
        Dim yIniCB As Integer = 235
        Dim xIniTt As Integer = 300
        Dim yIniTt As Integer = 235
        Dim Total As Double = 0
        Dim Nombre As String

        For i As Integer = 1 To Num
            'Extraer los datos del Listbox
            Dim dFact() As String = Split(ListFacturas.Items(i - 1), " | ")

            'Agregar textbox
            Dim txtBox As New TextBox

            With txtBox
                .Name = "txtFactura" & i
                .Width = 100
                .Height = 22
                If i > 1 Then
                    yIniTB += 23
                End If
                .Location = New System.Drawing.Point(xIniTB, yIniTB)
                .Text = dFact(0)
                .ReadOnly = True
                .BackColor = Color.Cornsilk
            End With

            Me.Controls.Add(txtBox)

            'Agregar combobox
            Dim cmbTP As New ComboBox
            Dim Elementos() As String = {"PARCIAL", "TOTAL"}

            With cmbTP
                .Name = "cmbTP" & i
                .Width = 121
                .Height = 21
                If i > 1 Then
                    yIniCB += 23
                    .Focus()
                End If
                .Location = New System.Drawing.Point(xIniCB, yIniCB)
                .Items.AddRange(Elementos)
                .SelectedIndex = 1
            End With

            Me.Controls.Add(cmbTP)

            'Agregar controles para mostrar el total de la factura.
            Dim txtTotal As New TextBox

            With txtTotal
                Nombre = "txtTotal" & i
                .Name = Nombre
                .Width = 100
                .Height = 22
                If i > 1 Then
                    yIniTt += 23
                End If
                .Location = New System.Drawing.Point(xIniTt, yIniTt)
                .Text = dFact(1)
                .TextAlign = HorizontalAlignment.Right
                .ReadOnly = True
                .BackColor = Color.Cornsilk
            End With

            Me.Controls.Add(txtTotal)
            Total = Total + FormatNumber(txtTotal.Text, , , , TriState.False)
        Next

        Me.txtMontoCobrar.Text = FormatNumber(Total, 2, , , TriState.True)

    End Sub
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 28/10/2008, 09:21
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: ¿Como trabajar con controles creados en tiempo de ejecución?

Cita:
Iniciado por juandedios Ver Mensaje
Saludos, estoy desarrollando una aplicación en VB 2005 y tuve la necesidad de crear unos combobox en tiempo de ejecución, hasta ahi esta todo bien, pero ahora la pregunta mia es: ¿Como puedo trabajar con ellos?, es decir, quiero que al seleccionar un elemento de algun combo creado suceda algo, como hago eso?

Aquí les pongo el codigo de como creé los controles:
... codigo
Saludos, antes de agregar el control a la colección, le tienes que asociar el evento con la instrucción AddHandler

p.e. asociar el evento 'SelectedIndexChanged' del Combo:

...
.Items.AddRange(Elementos)
.SelectedIndex = 1
AddHandler cmbTP.SelectedIndexChanged, AddressOf cboChgd
' y así con otros eventos que quieras asociar en tiempo de ejecución
End With
Me.Controls.Add(cmbTP)


Evento para que muestre el item seleccionado:

Código:
Private Sub cboChgd(ByVal sender As Object, ByVal e As System.EventArgs)
        MsgBox(sender.text)
    End Sub
  #3 (permalink)  
Antiguo 29/10/2008, 08:51
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: ¿Como trabajar con controles creados en tiempo de ejecución?

Hola, gracias por tu respuesta, salió chevere, pero hay un problema, cuando escribo el "sender.text", el text no me aparece por ningún lado ni tampoco me salen ninguna de las propiedades de un combobox, por ejemplo quiero hacer una comparación según el elemento seleccionado.
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 29/10/2008, 09:17
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: ¿Como trabajar con controles creados en tiempo de ejecución?

Hey, ya entendi, solo tengo que poner la propiedad con la que quiero trabajar, igual la toma en cuenta.

Gracias.
__________________
El aprendiz.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:06.