¿se puede hacer que en un combo se pueda seleccionar items pero no editar?

juanolas
13 de Octubre del 2003
hola a todos-as,
la duda que tengo es la que pongo en el titulo necesito saber si se puede hacer que un combo permita seleccionar items pero no escribir .
muchas gracias por su atencion

sdemingo
13 de Octubre del 2003
Tienes que darle a su propiedad Style el valor 2.

Lo puedes hacer en tiempo de diseño
Style: 2 - Dropdown List

Un saludo
sdemingo

juanolas
13 de Octubre del 2003
muchas gracias sdemingo era esactemente lo que necesitaba ahora solo me queda otra cuestion y es saber la forma mas rapida y facil de hacer que me seleccione automaticamente un item a partir de una cedena de texto ,solo que tengo una circunstancia que me dara mas currel y es que por ejemplo la cadena a buscar sera "11" y en item aparecera "11 texto"
muchas gracias de antemano

sdemingo
13 de Octubre del 2003
Bueno Juanolas, espero que te sirva esto para tu problema....
En el combo cargo items tal que así --> "6 texto"
y en la caja de texto, cadena a buscar, solo pongo 6.
Pruébalo.

Para probar el codigo, necesitas un formulario que tenga una caja de texto llamada Text1, un combo llamado Combo1 y un botón llamado Command1.

Private Sub Command1_Click()
Dim encontrado As Boolean
Dim elemento() As String
Dim i As Integer

If Me.Text1.Text <> "" Then
For i = 0 To Me.Combo1.ListCount
elemento = Split(Me.Combo1.List(i), " ", , vbBinaryCompare)
If UBound(elemento) <> -1 Then
If Me.Text1.Text = elemento(0) Then
Me.Combo1.Text = Me.Combo1.List(i)
encontrado = True
Exit For
End If
End If
Next i
If Not encontrado Then
MsgBox "No se ha encontrado el elemento que busca"
End If
Else
MsgBox "Escriba un criterio de busqueda"
End If

End Sub

Private Sub Form_Load()

Me.Combo1.AddItem "1 Elemento"
Me.Combo1.AddItem "2 Elemento"
Me.Combo1.AddItem "3 Elemento"
Me.Combo1.AddItem "4 Elemento"
Me.Combo1.AddItem "5 Elemento"
Me.Combo1.Text = Me.Combo1.List(0)

End Sub


Un saludo
sdemingo


sdemingo
13 de Octubre del 2003
Un poco más simple.....

Private Sub Command1_Click()
Dim encontrado As Boolean
Dim elemento() As String
Dim i As Integer

If Me.Text1.Text <> "" Then
For i = 0 To Me.Combo1.ListCount - 1
elemento = Split(Me.Combo1.List(i), " ", , vbBinaryCompare)
If Me.Text1.Text = elemento(0) Then
Me.Combo1.Text = Me.Combo1.List(i)
encontrado = True
Exit For
End If
Next i
If Not encontrado Then
MsgBox "No se ha encontrado el elemento que busca"
End If
Else
MsgBox "Escriba un criterio de busqueda"
End If

End Sub

Private Sub Form_Load()

Me.Combo1.AddItem "1 Elemento"
Me.Combo1.AddItem "2 Elemento"
Me.Combo1.AddItem "3 Elemento"
Me.Combo1.AddItem "4 Elemento"
Me.Combo1.AddItem "5 Elemento"
Me.Combo1.Text = Me.Combo1.List(0)

End Sub

Un saludo
sdemingo