На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: maxim84_
  
> Автодополнение в ComboBox
    Вот еще один примерчик для FAQ

    Пример демонстрирует автоматическую подстановку в ComboBox

    ExpandedWrap disabled
         Public Function ComboAutoComplete(ByRef comboObj As ComboBox) As Boolean
              Dim lngItemNum As Long
              Dim lngSelectedLength As Long
              Dim lngMatchLength As Long
              Dim strSearchText As String
              Dim sTypedText As String
              Const CB_LOCKED As Object = &H255
              Try
                  With (comboObj)
                      If .Items.Count > 0 Then
                          If .Text = Nothing Then
                              Exit Function
                          End If
                          comboObj.BeginUpdate()
                          If ((InStr(1, .Text, .Tag, vbTextCompare) <> 0 And Len(.Tag) = Len(.Text) - 1) Or (Microsoft.VisualBasic.Left(.Text, 1) <> Microsoft.VisualBasic.Left(.Tag, 1) And .Tag <> Nothing)) And .Tag <> CStr(CB_LOCKED) Then
       
                              strSearchText = .Text
                              lngSelectedLength = Len(strSearchText)
       
                              lngItemNum = .FindString(strSearchText)
                              ComboAutoComplete = Not (lngItemNum = -1)
       
                              If ComboAutoComplete Then
                                  .Tag = CB_LOCKED
                                  .SelectedIndex = lngItemNum
                                  lngMatchLength = Len(.Text) - lngSelectedLength
                                  sTypedText = strSearchText
                                  .SelectionStart = lngSelectedLength
                                  Dim Temp As Integer
                                  Temp = lngMatchLength
                                  .SelectionLength = Temp
                                  .Tag = sTypedText
                              End If
                          ElseIf .Tag <> CStr(CB_LOCKED) Then
                              .Tag = .Text
                          End If
                          comboObj.EndUpdate()
                      End If
                  End With
              Catch err As Exception
                  MsgBox(err.Message & err.StackTrace)
              End Try
          End Function


    Пример использования в аттаче

    Эта тема была разделена из темы "Наполнение и развитие FAQ"
    Прикреплённый файлПрикреплённый файлComboAutoCompleteExample.rar (45.88 Кбайт, скачиваний: 273)
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0232 ]   [ 16 queries used ]   [ Generated: 16.04.24, 18:21 GMT ]