ComboBox DataField [duda]

Iniciado por Enemy, 7 Junio 2009, 18:45 PM

0 Miembros y 1 Visitante están viendo este tema.

Enemy

Hola solo necesito un ejemplo muy basico con respecto a la utilizacion del "COMBOBOX" Porque necesito cargarle a sus items, o sea

Combo1.AddItem = "ABECEDARIO"

por ejemplo..

Necesito que al seleccionar uno de los items, le doy a un "command" (esa parte ya la tengo) y que este muestre en un TextBox, el contenido que lleve cargado ese item.. algo seria:

Tengo varias opciones, elijo "ABECEDARIO", Le doy al boton "OK" y este deberia mostrar el "abecedario" pero no el nombre sino: ABCDEFG....... en un TextBox y asi..

Supongo que se usa el "DataField" , en ese caso, necesitaria un ejemplo basico.. Lo unio que encontre es bastante avanzado y no me da para eso.

Gracias de antemano.


PD: Cree un tema distinto para evitar el Doble post y debido a que es un tema parecido.. "Lo mesmo no es lo mismo que lo mismo"

SALUD.O.S

BlackZeroX

#1
o se si te entendi pero es algo asi?

Código (vb) [Seleccionar]

Dim abc() As String

Private Sub Form_Load()
ReDim abc(90 - 65)
For i = 65 To 90
   abc(i - 65) = Chr(i)
   List1.AddItem Rnd(1) * 32765 & Chr(i) & Chr(i / 2 * 3)
Next i
End Sub

Private Sub List1_Click()
   MsgBox abc(List1.ListIndex)
End Sub
The Dark Shadow is my passion.

seba123neo

Hola, el DataField es para otra cosa...proba algo asi:

Código (vb) [Seleccionar]
Private Sub Command1_Click()
    Select Case Combo1.ListIndex
        Case 0
            Dim i As Integer
            Text1.Text = ""
            For i = 65 To 90
                Text1.Text = Text1.Text & Chr(i)
            Next i
    End Select
End Sub

Private Sub Form_Load()
    Combo1.AddItem "ABECEDARIO"
    Combo1.AddItem "Otra Opcion"
End Sub


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Enemy

#3
claaro algo asi pero no que muestre el abecedario, me confundo xD miren asi tengo:

Private Sub Form_Load()
Combo1.AddItem "Bloq. Adm Tareas"
Combo1.AddItem "Shutdown Pc"
Combo1.AddItem "Firewall Kill"
Combo1.AddItem "Bloq.Cmd"
With Text1
.FontSize = 8
.BackColor = vbBlack
.FontBold = True
.ForeColor = vbGreen
.Text = "Bienvenido al Worm Kreator 1.0   By:  Bakura182"
End With
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 1 Then
          Text1.SelStart = 0
          Text1.SelLength = Len(Text1.Text)
   End If
End Sub

Private Sub Command2_Click()
Command2.Caption = "OK"
Combo1.Locked = False
Select Case Combo1.ListIndex
       Case Is = 0
           MsgBox " BLABLA 1 "
       Case Is = 1
           MsgBox " BLABLA 2"
       Case Is = 2
           MsgBox " BLABLABLA 3"
       Case Is = 3
           MsgBox " BLABLABLA 4"
   End Select
End Sub
Private Sub Command1_Click()
On Error GoTo EOF

Dim KWorm As String

KWorm = "C:\K-Worm.vbs"

   Open KWorm For Output As #1
   Print #1, Text1.Text + vbCrLf
   Close
MsgBox "Generado Exitosamente en C:\"
EOF:
End Sub



No si me entienden... elijo Bloq. Adm tareas y quiero que salga lo que yo le carge a la opcion "Bloq adm Tareas" que sera un code en VBS sobre el TextBox.

ahora.. como hago para cargarle esa info a los Items y que se muestre al presionar ok.

PD: dice blablabla porque es para ver si fuciona el "OK" todavia lo estoy tratando de arreglar eso. Una Vez entendida la parte que me falta, me queda llenarlo de miles y miles de cods VBS que ya los tengo, pero por ahora lo que falta.

PD2: He leido que se usa el ItemData, puede ser? En ese caso.. como?

Enemy

Disculpen el doble post...

Debo cargar el ItemData pero como lo hago codeando?

Ya tengo los additem todos cargados, ahora, como hago para cargarlo es decir

Combo1.ItemData  y como hago ahora para decirle que el Listindex 1 es igual a "codigo en vbs que se mostrara en el textbox"; ListIndex 2 es igual a..... eso.

Creo que despues para mostralo seria asi:

Select Case Combo1.ListIndex
       Case Is = 0
           Text1.Text = Combo1.ItemData(CInt(Combo1.ListIndex))


Me muestra el numero de posicion en el Combo1, en este caso "0" pero lo bueno es que se escribe en el textbox, ya voy avanzando un poco mas..

Ahora, necesito saber como cargar el item data para que me muestr el contenido que le carge y no la posición. Se entiende?

seba123neo

no el itemData es para otro cosa , es para guardar ID cuando manejas bases de datos o algo parecido, lo que vos queres se puede hacer simplemente con un select case del listindex como te puse yo en mi ejemplo y que cada uno llame a una funcion diferente...por ejemplo:

Código (vb) [Seleccionar]
Select Case Combo1.ListIndex
        Case 0
            call funcionadministradortareas
        Case 1
            call funcionshutdownpc
        Case 2
            call funcionfirewallkill
        Case 3
           call funcionbloqueacmd
    End Select
End Sub


entendes? hacete funciones(en realidad Sub...total no va a retornar ningun valor) y los llamas...

saludos.



La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Enemy

#6
No, no entiendo. como bien lei por ahi, hay varias formas de hacerlo y creo que tengo una.

Se que estoy a un paso de sacarlo:

Private Sub Command2_Click()
Command2.Caption = "OK"
Combo1.Locked = False
Select Case Combo1.ListIndex
       Case Is = 0
           Text1.Text = Combo1.ItemData(0)
           
       Case Is = 1
           Text1.Text = Combo1.ItemData(1)
           
       Case Is = 2
           Text1.Text = Combo1.ItemData(2)
           
       Case Is = 3
           Text1.Text = Combo1.ItemData(3)
           
   End Select
   
  Combo1.Locked = False
End Sub

Private Sub Form_Load()
Combo1.AddItem "Bloq. Adm Tareas", 0
Combo1.AddItem "Shutdown Pc", 1
Combo1.AddItem "Firewall Kill", 2
Combo1.AddItem "Bloq.Cmd", 3
   Combo1.ItemData(0) = ASDASDA
   Combo1.ItemData(1) = DFRSDDSD
   Combo1.ItemData(2) = BLABALBAL
   Combo1.ItemData(3) = ERTTYUTUY
End Sub


Sera algo asi??  

seba123neo

yo te entiendo lo que queres, pero parece que no entendes lo que digo  :P...el ItemData solo acepta datos numericos, te dije que son para guardar ID o algo parecido...vos queres escribir en el textbox algo que dependa del item que queres seleccionar...lo podes hacer como te dije yo de llamar un Sub diferente para cada Item...

Código (vb) [Seleccionar]
Private Sub Command2_Click()
    Command2.Caption = "OK"
    Combo1.Locked = False
    Select Case Combo1.ListIndex
        Case 0
            Call AdminTarea
        Case 1
            Call Shutdown
        Case 3
            Call Firewall
        Case 4
            Call CMD
    End Select
    Combo1.Locked = False
End Sub

Private Sub Form_Load()
    Combo1.AddItem "Bloq. Adm Tareas"
    Combo1.AddItem "Shutdown Pc"
    Combo1.AddItem "Firewall Kill"
    Combo1.AddItem "Bloq.Cmd"
End Sub

Private Sub AdminTarea()
    text1.Text = "seleccionaste administrador tareas"
End Sub

Private Sub Shutdown()
    text1.Text = "seleccionaste shutdown"
End Sub

Private Sub Firewall()
    text1.Text = "seleccionaste firewall"
End Sub

Private Sub CMD()
    text1.Text = "seleccionaste cmd"
End Sub


ya si no agarras ahi... :)

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Enemy

aaah tenias razon che xDD

Pero hay un problema.. al decir que el texto que hay en la caja es igual a "x" se reemplazara cada vez que selecciono una opcion distinta.  :-\

PD: Se que pasa eso, lo acabo de comprobar y aparte es logico.

seba123neo

Cita de: Bakura182 en  7 Junio 2009, 22:21 PM
aaah tenias razon che xDD

Pero hay un problema.. al decir que el texto que hay en la caja es igual a "x" se reemplazara cada vez que selecciono una opcion distinta.  :-\

PD: Se que pasa eso, lo acabo de comprobar y aparte es logico.

era un ejemplo...si queres que se acumule el texto pues simplemente con text1.text = text1. text + "texto" se corrige...si queres le podes agregar un salto de linea para que se separe el texto del otro...obviamente con el textbox multilinea...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson