При вводе первых символов, не выбранные элементы в элементе управления ComboBox

Переводы статьи Переводы статьи
Код статьи: 814362 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

УстановитьDropDownStyleСвойствоПоле со спискомэлемент управленияУправления DropDownListи введите первые символы в элементПоле со спискомво время выполнения. Элемент, который выбран вПоле со спискомНесовпадение знаков, при вводе. Элемент, который выбран вПоле со спискомзависит от последнего знака, при вводе. Например если элементы вПоле со спискомвыполняетсяКрасный,дуб, иРозовая, при вводеRoВ диалоговом окнеПоле со списком, фокус установлен надубВместоРозовая.

Причина

Эта проблема возникает из-заПоле со спискомПоиск основывается на один знак вместо полной кодировки.

Временное решение

Чтобы обойти эту проблему, добавьте код, который выполняет поиск элементов, в которой все символы, вводимые вПоле со списком. Код также необходимо выбрать элемент, точно соответствующий все символы. Чтобы удалить искомый текст через равные промежутки времени, с помощьюТаймерУправление:. Выполните следующие действия::
  1. В Microsoft Visual Studio .NET или Microsoft Visual Studio 2005, создавать новые Windows приложений с помощью Visual Basic .NET, Visual Basic 2005 или Visual C# .NET.

    По умолчанию будет создана форма Form1..
  2. Перетащите с панели элементовТаймерв форму Form1.
  3. В окне «Свойства»включенСвойствоTrue.
  4. Добавьте следующий оператор объявления переменной часть кода:

    В Visual Basic .NET или Visual Basic 2005
    Dim searchstr As String
    Visual C# .NET
    string searchstr;
  5. Добавьте следующий код вЗагрузкасобытия Form1:

    В Visual Basic .NET или 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. Добавьте следующий код вДелениясобытияЭлемент Timer1:

    В Visual Basic .NET или Visual Basic 2005
    'empty the string for every 1 seconds
    searchstr = ""
    Visual C# .NET
    //empty the string for every 1 seconds
    searchstr="";
  7. Добавьте следующий код вКлавиша вверхсобытияComboBox1:

    В Visual Basic .NET или 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;
             }

Статус

Такое поведение является особенностью данного продукта..

Дополнительная информация

Действия по воспроизведению поведения

  1. В Microsoft Visual Studio .NET или Microsoft Visual Studio 2005, создавать новые Windows приложений с помощью Visual Basic .NET, Visual Basic 2005 или Visual C# .NET.

    По умолчанию будет создана форма Form1..Примечание.Необходимо изменить код в Visual Basic 2005. По умолчанию при создании проекта Windows Forms Visual Basic создает два файла для проекта. Если форма называется Form1, двух файлов, которые представляют собой формы с именем Form1.vb и Form1.Designer.vb. Напишите код в файл Form1.vb. В конструкторе Windows Forms записывает код в файле Form1.Designer.vb. В конструкторе Windows Forms использует ключевое слово partial разделить на два отдельных файла реализации класса Form1. Это предотвращает коду, сгенерированному конструктором с перемежаются текстового блока кода.

    Для получения дополнительных сведений о новых улучшений языка Visual Basic 2005 посетите следующий веб-узел Microsoft Developer Network (MSDN):
    .aspx HTTP://msdn2.Microsoft.com/en-us/library/ms379584 (vs.80)
    Дополнительные сведения о разделяемых классах и в конструкторе Windows Forms посетите веб-узлу MSDN:
    http://msdn2.Microsoft.com/en-us/library/ms171843.aspx
  2. Перетащите с панели элементовПоле со спискомв форму Form1.
  3. Щелкните правой кнопкой мышиComboBox1и выберите командуСвойства.
  4. В окне «Свойства» щелкнитеDropDownStyle, а затем задайте для свойстваУправления DropDownList.
  5. В окне «Свойства» щелкнитеПрограммы., а затем нажмите кнопку с многоточием ()...).
  6. ВРедактор коллекции строкTYPE :Красный,дуб, иРозоваяна разных линий, а затем нажмитеOk..
  7. в менюОтладкавыберите пунктSTART ::для запуска приложения.
  8. ТипRoвComboBox1.

Ссылки

Дополнительные сведения см. на следующей странице веб-узла MSDN::

Свойство ComboBox.DropDownStyle
.aspx HTTP://msdn2.Microsoft.com/en-us/library/System.Windows.Forms.ComboBox.DropDownStyle (vs.71)

Свойства

Код статьи: 814362 - Последний отзыв: 25 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • 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
Ключевые слова: 
kbvs2005swept kbvs2005applies kbctrl kbcontrol kbproperties kbdisplay kbwindowsforms kbcombobox kbprb kbmt KB814362 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:814362

Отправить отзыв

 

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