Hola expertos! Tengo un combobox en el que tengo un montón de entradas en la lista y es un rollo para ir hasta una de las entradas con la flechita. En algún sitio he visto que escribes en la caja de texto y automáticamente se t rellenaba toda la palabra e iba directamente. ¿Cómo puedo hacer eso? Muchas gracias
1 Respuesta
Respuesta de fansi
1
1
fansi, Programacion, programación web, bases de datos, sistemas operativos
Dim Combo1Borrado As Boolean Private Sub Combo1_Change() Static YaEstoy As Boolean On Local Error Resume Next If Not YaEstoy Then YaEstoy = True unCombo_Change Combo1.Text, Combo1 YaEstoy = False End If Err = 0 End Sub Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) unCombo_KeyDown KeyCode End Sub Private Sub Combo1_KeyPress(KeyAscii As Integer) unCombo_KeyPress KeyAscii End Sub Private Sub unCombo_KeyDown(KeyCode As Integer) If KeyCode = vbKeyDelete Then Combo1Borrado = True Else Combo1Borrado = False End If End Sub Private Sub unCombo_KeyPress(KeyAscii As Integer) 'si se pulsa Borrar... ignorar la búsqueda al cambiar If KeyAscii = vbKeyBack Then Combo1Borrado = True Else Combo1Borrado = False End If End Sub Private Sub unCombo_Change(ByVal sText As String, elCombo As ComboBox) Dim i As Integer, L As Integer If Not Combo1Borrado Then L = Len(sText) With elCombo For i = 0 To .ListCount - 1 If StrComp(sText, Left$(.List(i), L), 1) = 0 Then .ListIndex = i .Text = .List(.ListIndex) .SelStart = L .SelLength = Len(.Text) - .SelStart Exit For End If Next End With End If End Sub Private Sub Form_Load() Combo1. AddItem "Primero" Combo1. AddItem "Segundo" Combo1. AddItem "Tercero" Combo1. AddItem "Cuarto" Combo1. AddItem "Quinto" Combo1. AddItem "Sexto" Combo1. AddItem "Septimo" Combo1. AddItem "Octavo" Combo1. AddItem "Noveno" Combo1. AddItem "Decimo" End Sub
Muchísimas gracias! Pensaba que iba a ser algo facilísimo como cambiar alguna propiedad o algo así! No se m habría ocurrido programar eso nunca.