Mentre si digitano il primo carattere non sono selezionati elementi al controllo ComboBox

Traduzione articoli Traduzione articoli
Identificativo articolo: 814362 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

È impostata la proprietà DropDownStyle del controllo ComboBox in DropDownList e quindi digitare i primi caratteri della voce in ComboBox durante la fase di esecuzione. L'elemento selezionato in ComboBox non corrisponde a caratteri digitati. L'elemento selezionato in ComboBox in base all'ultimo carattere digitato. Ad esempio, se gli elementi in ComboBox sono rosso, quercia e rosa, quando si digita sola lettura in ComboBox, lo stato attivo si trova su quercia anziché rosa.

Cause

Questo problema si verifica poiché la ricerca di ComboBox si basa su un carattere anziché il set di caratteri completo.

Workaround

Per aggirare questo problema, aggiungere il codice che esegue la ricerca di elementi con tutti i caratteri digitati nella casella combinata. Il codice è necessario selezionare anche l'elemento che corrisponde strettamente tutti i caratteri. Per cancellare il testo di ricerca a intervalli regolari, utilizzare un controllo Timer. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. In Visual Studio .NET o in Visual Studio 2005, creare un nuovo Windows dell'applicazione utilizzando Visual Basic. NET, Visual Basic 2005 o Visual C#. NET.

    Per impostazione predefinita, verrà creato Form1.
  2. Dalla casella degli strumenti trascinare un Timer in Form1.
  3. Nella finestra Proprietà impostare Enabled proprietà su true.
  4. Aggiungere la seguente istruzione alla sezione di dichiarazione delle variabili del codice:

    Visual Basic .NET o Visual Basic 2005
    Dim searchstr As String
    Visual C# .NET
    string searchstr;
  5. Aggiungere il seguente codice all'evento Load di Form1:

    Visual Basic .NET o Visual Basic 2005
    'set the timer interval and start the timer
    Timer1.Interval = 1000
    Timer1.Start()
    Visual C# .NET
    //set the interval  and start the timer
    timer1.Interval =1000;
    timer1.Start();
  6. Aggiungere il codice riportato di seguito l'evento Tick di Timer1:

    Visual Basic .NET o Visual Basic 2005
    'empty the string for every 1 seconds
    searchstr = ""
    Visual C# .NET
    //empty the string for every 1 seconds
    searchstr="";
  7. Aggiungere il codice riportato di seguito l'evento KeyUp dei ComboBox1:

    Visual Basic .NET o Visual Basic 2005
          searchstr = searchstr & Chr(e.KeyValue)
          ' If the Search string is greater than 1 then use custom logic
          If searchstr.Length > 1 Then
             Dim index As Integer
             ' Search the Item that matches the string typed
             index = ComboBox1.FindString(searchstr)
             ' Select the Item in the Combo
             ComboBox1.SelectedIndex = index
          End If  
    Visual C# .NET
             searchstr = searchstr + Convert.ToChar(e.KeyCode);
             // If the Search string is greater than 1 then use custom logic
             if (searchstr.Length > 1)
             {
                int index;
                // Search the Item that matches the string typed
                index=comboBox1.FindString(searchstr);
                // Select the Item in the Combo
                comboBox1.SelectedIndex=index;
             }

Status

Questo comportamento è legato alla progettazione.

Informazioni

Procedura per riprodurre il problema

  1. In Visual Studio .NET o in Visual Studio 2005, creare un nuovo Windows dell'applicazione utilizzando Visual Basic. NET, Visual Basic 2005 o Visual C#. NET.

    Per impostazione predefinita, verrà creato Form1. Nota È necessario modificare il codice in Visual Basic 2005. Per impostazione predefinita, Visual Basic crea due file per il progetto quando si crea un progetto Windows Form. Se il form denominato Form1, i due file che rappresentano il form sono denominati Form1.vb e Form1.Designer.vb. È possibile scrivere il codice nel file Form1.vb. In Progettazione Windows Form scrive il codice nel file Form1.Designer.vb. In Progettazione Windows Form utilizza la parola chiave partial per suddividere l'implementazione di Form1 in due file distinti. Questo comportamento impedisce che il codice generato da progettazione venga frammisto con il codice.

    Per ulteriori informazioni sui nuovi miglioramenti del linguaggio Visual Basic 2005, visitare il seguente sito Web MSDN (informazioni in lingua INGLESE):
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
    Per ulteriori informazioni sulle classi parziali e Progettazione Windows Form, visitare il seguente sito MSDN Web:
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. Dalla casella degli strumenti trascinare un controllo ComboBox in Form1.
  3. Fare clic con il pulsante destro del mouse sul ComboBox1 e quindi scegliere proprietà.
  4. Nella finestra Proprietà selezionare DropDownStyle e quindi impostare la proprietà su DropDownList.
  5. Nella finestra Proprietà fare clic per selezionare elementi e quindi fare clic sul pulsante con i puntini di sospensione (...).
  6. Nell' Editor dell'insieme String digitare rosso, quercia e rosa su righe diverse e quindi fare clic su OK.
  7. Dal menu debug, fare clic sul pulsante Start per eseguire l'applicazione.
  8. Digitare la sola lettura in ComboBox1.

Riferimenti

Per ulteriori informazioni, visitare il seguente sito Web MSDN:

Proprietà ComboBox.DropDownStyle
http://msdn2.microsoft.com/en-us/library/system.windows.forms.combobox.dropdownstyle(vs.71).aspx

Proprietà

Identificativo articolo: 814362 - Ultima modifica: venerdì 11 maggio 2007 - Revisione: 2.8
Le informazioni in questo articolo si applicano a:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Chiavi: 
kbmt kbvs2005swept kbvs2005applies kbctrl kbcontrol kbproperties kbdisplay kbwindowsforms kbcombobox kbprb KB814362 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 814362
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com