Newsgroup: it.comp.lang.visual-basic
Titolo: Combo box di suggerimenti

Ciao Gente,
Ho un'esigenza in Visual basic 6.0 :
Devo inserire dei dati nel campo di una datagrid e mi piacerebbe un
meccanismo in grado di suggerirmi il dato dopo che ho digitato un
carattere !!
Per intenderci qualcosa di simile alla combo box che si apre
sull'editor di visual basic per i suggerimenti  del tipo di variabile
dopo AS !!!
es.             tabella  colori :   Bianco
                                           Verde
                                           Blu
Supponiamo voglia scrivere Blu !!!
Quando nel campo della datagrid inizio a scrivere B, sul rigo sotto
spostato sulla destra combare una combo con in elenco le voci  :   Blu
Bianco !!!
Non so se sono stato chiaro !!!  Ho fatto del mio meglio !!!
Accetto qualsiasi suggerimento e/o riferimenti a pagine su internet
dove ci sia uno stralcio di codice che mi possa aiutare !!

http://www.scottandmichelle.net/scott/code/index2.mv?codenum=057
oppure (per la combo box)
 Call AutoCompleteCombo(Combo1, KeyAscii)
e la funzione č:
Public Sub AutoCompleteCombo(Combo1 As ComboBox, KeyAscii As Integer)
    Dim lCnt       As Long 'Generic long counter
    Dim lMax       As Long
    Dim sComboItem As String
    Dim sComboText As String 'Text currently in combobox
    Dim sText      As String 'Text after keypressed
    Dim miSelStart As Integer
    'MsgBox KeyAscii
    On Error GoTo errore
    miSelStart = Combo1.SelStart 'Set the entry point of the selected text
    If KeyAscii = 13 Or KeyAscii = 27 Then Exit Sub 'Charage Return or
escape
    With Combo1
        lMax = .ListCount - 1 'The number of values in the list
        sComboText = .Text 'The current text in the list
        '**********************************************
        'This block either removes or adds a character
        '***********************************************
        If KeyAscii = 8 Then 'Backspace
            'If there is one character left, remove the text
            If Len(Combo1.Text) = 1 Or Len(Combo1.Text) = 0 Then
                Combo1.Text = ""
                miSelStart = 0
                Exit Sub
            'There is one character and seltext (our matched text)
            ElseIf Len(Combo1.Text) - (Len(Combo1.Text) - miSelStart) = 1
Then
                Combo1.Text = ""
                miSelStart = 0
                Exit Sub
            End If
            'An ordinary backspace, decrement 1 character
            Combo1.Text = Left(sComboText, miSelStart - 1)
            sText = Left(sComboText, miSelStart - 1) 'reset our sText var
sText = combo1.text??
        Else
            'A char other than backspace, return or escape was pressed
            sText = Left(sComboText, miSelStart) & Chr(KeyAscii) 'Increment
our string with the new char
        End If
        KeyAscii = 0 'Reset key pressed
        '**********************************************
        'This block performs our lookup
        '**********************************************
        For lCnt = 0 To lMax
            sComboItem = .List(lCnt) 'Current item
            If UCase(sText) = UCase(Left(sComboItem, _
                                         Len(sText))) Then 'A match was
found
                '.ListIndex = lCnt 'Not sure why this is needed
                .Text = sComboItem
                .SelStart = Len(sText) 'Start the highlighting after
manually entered text
                .SelLength = Len(sComboItem) - (Len(sText)) 'Highlight to
the end of the text
                Exit For
            Else
                .Text = sText 'Set the text value = the new text
                .SelStart = Len(.Text) 'Set selstart to the end of the
string
            End If
        Next 'lCnt
    End With
Exit Sub
errore:
    If Err.Number <> 5 Then
        MessageBox "E' avvenuto un errore: " & Err.Number & " " &
Err.Description, OKOnly, Critical
    End If
End Sub
bye
-- 
Esistono 10 tipi di persone: chi conosce il binario e chi no.
www.nicolaottomano.it

Ragazzi, 
forse non sono stato molto felice nella spiegazione del mio problema
!!
Io vorrei ottenere qualcosa di simile ai suggerimenti che si hanno in
vb mentre si digita il codice !!!
Semplicemente mentre sto digitando su una textbox, su una Rith textbox
o su una cella del datagrid voglio che mi compaia questo elenco in una
list box  a mo dell'esempio di vb !!!!
Scrivo l'iniziale di un colore e per suggerimento si apre questa list
box con selezionate le voci in elenco che cominciano con i dati
digitati !!!


Ah, ma tu parli dell'IntelliSense!!
Ma in tal caso non so proprio come aiutarti. Non mi ci sono mai cimentato.
prova a cercare su google, ma non credo troverai molto.
