Как определить, было ли вызвано изменение выделенного списка со стороны клавиатуры или мыши - PullRequest
2 голосов
/ 21 сентября 2011

Я хочу игнорировать клавиши со стрелками вверх и вниз на событии SelectionChangeCommitted поля со списком, и только мышь позволяет разрешить выбор.Кто-нибудь знает, как это сделать?

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

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Вы можете подавить клавишу, используя событие KeyDown, как это;

    private void comboBox1_KeyDown(object sender, KeyEventArgs e)
    {
        e.SuppressKeyPress = true;
    }
2 голосов
/ 21 сентября 2011

Вы должны иметь возможность обработать событие KeyPress для вашего комбинированного списка и отменить (e.Canceled = true;) его. Это также предотвратит изменение элемента комбинированного списка, когда вы нажмете клавишу, соответствующую первой букве элемента.

...