2010-10-06 4 views
1

Я пишу окна из приложения в том, что я использую управление поле со списком. Я уже вставлял данные в поле со списком. некоторые свойства я насытил для комбинированного окна являютсяwindows form combo box проблема?

dropdownstyle = выпадающего
autocompletesource = ListItem
AutoCompleteMode = предложил Append.

сейчас моя проблема заключается в том, что я хотел бы ограничить пользователя вводить только те значения, которые находятся в поле со списком. например, если комбинированная коробка имеет 3 элемента в нем яблоко, манго и виноград

затем я хочу, чтобы пользователь входил в один из них, пока они заполняют значение в поле со списком.

спасибо, ребята, за время.
Vijay shiyani

+1

Почему вы хотите, чтобы пользователь вводил свои собственные значения? Почему бы просто не позволить им выбирать из элементов в поле со списком? –

ответ

4

Один из способов - подтвердить их выбор, проверив, является ли поле со списком SelectedIndex чем-либо иным, кроме -1. Если это так, они набрали или выбрали элемент из списка. Вы также можете сделать аналогичную вещь, проверив, SelectedItem! = Null.

например.

if (comboBox.SelectedIndex != -1) 
{ 
    // Item from list selected 
} 
else 
{ 
    // Error: please selecte an item from the list 
} 

Другой способ избежать проверки является установить ComboBoxStyle в DropDownList, который будет по-прежнему позволяет им печатать, но только позволит им набрать или выбрать элемент из списка.

+1

+1 для установки ComboBoxStyle в DropDownList –

3

Изменение DropDownStyle в DropDownList вместо DropDown

combobox.DropDownStyle = ComboBoxStyle.DropDownList; 

или изменить его на странице VS свойства

0

Поместите этот код в Validating случае ComboBox:

var cbo = (ComboBox)sender; 
if (cbo.SelectedIndex == -1) 
{ 
    e.Cancel = true; 
} 

NOTE : Установка Отмена на истину запрещает пользователю оставлять проверяемый элемент управления.
Следует использовать с особой осторожностью.

+0

это не работает, потому что selectedItem является объектом, и мы не можем сравнивать его с значением int -1. –

+0

Извините. Виноват. Я скорее упомянул свойство 'SelectedIndex'. См. Обновление. –