Cómo crear un ComboBox de búsqueda incremental

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 154076
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Resumen
El ComboBox se distribuye con Visual Basic tiene funcionalidad simplista, mientras que muchos controles de terceros ofrecen características adicionales adicionales. Una de estas características de otros fabricantes es la capacidad del control para buscar texto y buscar entradas que comienzan con ese texto mientras escribe texto en el control ComboBox.

Por ejemplo, si escribe las letras "He", el control ComboBox buscará la primera entrada de texto comenzando con "He" y se muestra el texto completo, como "Hello World".

A continuación es un ejemplo código que muestra cómo lograr esta funcionalidad con el control ComboBox que se incluye con Visual Basic.
Más información

Ejemplo de paso a paso

  1. Inicie un proyecto nuevo de Visual Basic. Se creará Form1 de manera predeterminada.
  2. Coloque un control ComboBox en el formulario.
  3. Agregue el código siguiente a la ventana de código de Form1:
    Option Explicit   Private Const WM_SETREDRAW = &HB   Private Const KEY_A = 65   Private Const KEY_Z = 90   #If Win32 Then   Private Declare Function SendMessage Lib "user32" Alias _       "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _       ByVal wParam As Long, lParam As Long) As Long   #Else   Private Declare Function SendMessage Lib "User" ( _       ByVal hwnd As Integer, ByVal wMsg As Integer, _       ByVal wParam As Integer, lParam As Any) As Long   #End If   Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)     Dim sComboText As String     Dim iLoop As Integer     Dim sTempString As String     Dim lReturn As Long     If KeyCode >= KEY_A And KeyCode <= KEY_Z Then       'only look at letters A-Z       sTempString = Combo1.Text       If Len(sTempString) = 1 Then sComboText = sTempString       lReturn = SendMessage(Combo1.hWnd, WM_SETREDRAW, False, 0&)       For iLoop = 0 To (Combo1.ListCount - 1)         If UCase((sTempString & Mid$(Combo1.List(iLoop), _           Len(sTempString) + 1))) = UCase(Combo1.List(iLoop)) Then           Combo1.ListIndex = iLoop           Combo1.Text = Combo1.List(iLoop)           Combo1.SelStart = Len(sTempString)           Combo1.SelLength = Len(Combo1.Text) - (Len(sTempString))           sComboText = sComboText & Mid$(sTempString, Len(sComboText) + 1)           Exit For         Else           If InStr(UCase(sTempString), UCase(sComboText)) Then             sComboText = sComboText & Mid$(sTempString, Len(sComboText) _             + 1)             Combo1.Text = sComboText             Combo1.SelStart = Len(Combo1.Text)           Else             sComboText = sTempString             End If         End If       Next iLoop       lReturn = SendMessage(Combo1.hWnd, _       WM_SETREDRAW, True, 0&)     End If   End Sub   Sub Form_load()     Combo1.AddItem "Alpha"     Combo1.AddItem "Beta"     Combo1.AddItem "Charlie"     Combo1.AddItem "Delta"     Combo1.AddItem "Dingo"   End Sub					
  4. En el menú Ejecutar, haga clic en Inicio o presione la tecla F5 para ejecutar el programa.
Si escribe la letra "D", observará que "Delta" es el texto activo en el cuadro combinado. Si a continuación, escribe una "I", se mostrará el texto "Dingo". Con todas las letras siguientes que escriba, la siguiente palabra en la lista del ComboBox comenzará con la secuencia de caracteres que ha escrito.

Nota : la propiedad de estilo del control debe ser "0 - combinado de lista desplegable" para que funcione correctamente.
kbVBp400 kbVBp500 kbVBp600 kbVBp kbdsd kbDSupport kbVBA kbControl kbintluk combinado cuadro ComboBox automática completa Autocompletar Access VBA

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 154076 - Última revisión: 12/04/2015 15:07:42 - Revisión: 3.3

Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic Enterprise Edition for Windows 6.0, Microsoft Visual Basic 4.0 Standard Edition, Microsoft Visual Basic 4.0 Professional Edition, Microsoft Visual Basic 4.0 Professional Edition, Microsoft Visual Basic 4.0 16-bit Enterprise Edition, Microsoft Visual Basic 4.0 32-Bit Enterprise Edition

  • kbnosurvey kbarchive kbmt kbhowto KB154076 KbMtes
Comentarios