2013-07-29 6 views
0

У меня есть Combo Box, и я хочу, чтобы пользователь не мог вводить что-либо за пределами букв в Combo Box. Я попытался обработать Key Down Событие Combo Box, но он не работает.Combo Box Select

Это то, что я попытался

private void comboBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     string regexString = "^[A-Z]"; 
     Match matches = Regex.Match(comboBox1.Text, regexString); 

     if (!matches.Success) 
     { 
      e.SuppressKeyPress = true; 
      comboBox1.SelectedIndex = 0; 
     } 
    } 

Пожалуйста, есть ли лучший способ сделать это?

+3

Применение DropDownStyle = DropDownList? – Steve

+2

Вы посмотрели на PreviewKeydownEvent, который позволит вам запретить пользователям вводить символы, которые не являются буквами. Также убедитесь, что вы смотрите на символ, а не на содержимое вашего флажка. – legrandviking

+0

@Steve Спасибо, сработало. –

ответ

2

Просто установка DropDownStyle свойства DropDownList заставит пользователь выбрать только из элементов, уже присутствующих в выпадающем списке и набрав буквы будут выбрать соответствующий пункт. Таким образом, вы можете удалить любой код, написанный, чтобы заставить автоматический выбор

Не забудьте установить также AutoCompleteMode к Предлагайте или SuggestAppend.