Переопределение ComboBox для выбора элемента нажатием указателя на клавиатуре в C # - PullRequest
0 голосов
/ 14 апреля 2011

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

Пример:

ComboBoxMonths
  - Jan
  - Feb
  - Mar
  - Apr
  - May
  - Jun
  . . .

При нажатии 'J' Ян и 'F ' для ' Фев ', ....

Я хочу использовать это так, когда нажата

1 затем янв ,
2 для февраль и т. д.

Возможно ли это?Если да, как я могу этого достичь?

1 Ответ

0 голосов
/ 15 апреля 2011

Это работает правильно, только если для combo установлено значение DropDownList, что имеет смысл в вашем примере. Это также охватывает только 1-9. Если вы хотите обработать более чем одну цифру, требуется больше логики с таймерами.

public class MyComboBox : ComboBox
{
    protected override void OnKeyPress(KeyPressEventArgs e)
    {
        var index = e.KeyChar - '1';
        if( index >= 0 && index < this.Items.Count )
            this.SelectedIndex = index;

        base.OnKeyPress(e);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...