Programación General > Visual Basic 6.0 e inferiores
Re: Codigo para Pasar Items de un Combox a Varios TextBox
mexican:
Codigo para Pasar Items de un Combox a Varios TextBox
Tengo un ComBox con una lista de items, estos items quiero pasarlos de uno en uno por medio de un CommandButton a 15 TextBox
Es decir el codigo me va checar si el primer TextBox ya esta lleno con un item entonces lo pasa al segundo y si el primero y el segundo ya estan llenos entonces me lo pasa al tercero y asi sucesivamente
Gracias de Antemano
Brroz:
Hola mexican
Para probar el ejemplo, añade a un formulario un ComboBox llamado Combo1 y un TextBox llamado Text1 al que establecerás la propiedad Index = 0.
Si quieres, para tener datos de prueba, en el evento Load del formulario carga el combo con 11 items:
**************************************
Private Sub Form_Load
Dim int1 As Integer
For int1 = 0 to 10
Combo1.AddItem "Elemento índice " & int1
Next int1
End Sub
**************************************
Ahora, al seleccionar un elemento del combo, este se añade a un nuevo TextBox y se elimina del combo
*******************************************
Private Sub Combo1_Click()
If Combo1.ListIndex < 0 Then Exit Sub
Dim int1 As Integer
int1 = Text1.UBound
Dim int2 As Integer, ind1 As Boolean
For int2 = 0 To int1
If Len(Text1(int2).Text) = 0 Then
Text1(int2).Text = Combo1.List(Combo1.ListIndex)
ind1 = True
Exit For
End If
Next int2
If Not ind1 Then
int1 = int1 + 1
Load Text1(int1)
Text1(int1).Move Text1(int1 - 1).Left, Text1(int1 - 1).Top + Text1(int1 - 1).Height + 10
Text1(int1).Text = Combo1.List(Combo1.ListIndex)
Text1(int1).Visible = True
End If
Combo1.RemoveItem Combo1.ListIndex
End Sub
*******************************************
Ahora sólo tienes que adaptar el código a tus necesidades. No te compliques con lo del Load Text1(n)... La gracia del ejemplo para lo que tú quieres hacer es:
Textn.Text = Combo1.List(Combo1.ListIndex)
Suerte.
chiaravel:
una vez convertidos tus textbox en matriz colocas el siguiente codigo.
Dim i as integer, ya_esta as boolean
Dim o as integer
for i = 0 to 14
ya_esta=false
o=1
do until ya_esta=true
if len(textbox.item(o).text)>0 then
o=o+1
else
textbox.item(o).text=combo.list(i)
ya_esta=true
endif
loop
next
Y listo...
Suerte
mexican:
Creo que tu codigo sería el mas sencillo y facil sin despreciar el de Brroz, lo que pasa es que no entiendo eso de matriz de controles, disculpa mi ignorancia, soy novato
Otra cosa me imagino que este codigo que me diste va puesto en el evento del CommandButton
Gracias
chiaravel:
Este codigo ponlo donde tu quieras y funcionara.
En cuanto a una matriz de controles veras...
Cuando tu insertas un objeto en tu formulario este adquiere un nombre autonumerico, ejemplo TEXT1, TEXT2, TEXT3, etc,etc.
Bien...el problema de esto es que si tuvieras que hacer una operacion que involucre a todos estos textbox, tendrias que uno por uno setarlos manualmente, en cambio cuando los conviertes en matriz los puedes recorrer como te indique en el ejemplo simplemente por su nombre y luego por un indice.
Ejemplo.
text1.item(nro de textbox).text="hola"
Pero tu duda hasta este momento debe ser... "Como creo una matriz de controles ?"
Bueno...
Es muy simple..
Solo seleccionas el primer textbox, seleccionas en el menu edicion Copiar y luego Pegar.
Te aparecera automaticamente...
Ya existe un control llamado 'text1'. ¿Desea Crear una matriz de controles?
Y listo Pegas tantos controles como elementos necesites y luego veras que todos se llaman igual Text1.
Debes tener en cuenta que al pertenecer a una matriz de controles, a partir de ese momento cada vez que quieras referirte a alguno de ellos debes indicar TEXT1.ITEM(nro de textbox)
Espero que me hayas entendido.
Suerte
Navegación
[#] Página Siguiente
Ir a la versión completa