Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Enemy en 7 Junio 2009, 18:45 PM

Título: ComboBox DataField [duda]
Publicado por: Enemy en 7 Junio 2009, 18:45 PM
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
Título: Re: ComboBox DataField [duda]
Publicado por: BlackZeroX en 7 Junio 2009, 18:58 PM
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
Título: Re: ComboBox DataField [duda]
Publicado por: seba123neo en 7 Junio 2009, 19:06 PM
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.
Título: Re: ComboBox DataField [duda]
Publicado por: Enemy en 7 Junio 2009, 20:54 PM
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?
Título: Re: ComboBox DataField [duda]
Publicado por: Enemy en 7 Junio 2009, 21:16 PM
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?
Título: Re: ComboBox DataField [duda]
Publicado por: seba123neo en 7 Junio 2009, 21:27 PM
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.



Título: Re: ComboBox DataField [duda]
Publicado por: Enemy en 7 Junio 2009, 21:46 PM
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??  
Título: Re: ComboBox DataField [duda]
Publicado por: seba123neo en 7 Junio 2009, 22:02 PM
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... :)

Título: Re: ComboBox DataField [duda]
Publicado por: Enemy 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.
Título: Re: ComboBox DataField [duda]
Publicado por: seba123neo en 7 Junio 2009, 22:26 PM
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.
Título: Re: ComboBox DataField [duda]
Publicado por: Enemy en 7 Junio 2009, 22:44 PM
Si, el multiline esta a "True" y tambien tiene el "text1.text = text1.text + "texto"
pero se agrega al lado, como hago para agregarlo abajo?
Título: Re: ComboBox DataField [duda]
Publicado por: Dessa en 7 Junio 2009, 22:52 PM
text1.text = text1.text +  vbnewline + texto
Título: Re: ComboBox DataField [duda]
Publicado por: Enemy en 7 Junio 2009, 22:58 PM
Cita de: Dessa en  7 Junio 2009, 22:52 PM
text1.text = text1.text +  vbnewline + texto


Text1.Text = Text1.Text + "Texto" + vbNewLine

:P asi.

Muchas gracias :D