2009-03-16 5 views
0

Как вы теперь можете выбрать элемент из comboBox с помощью клавиатуры напрямую. При помощи мыши я блокирую пользователя для выбора некоторых элементов в зависимости от состояния объекта позади. Какое лучшее решение, чтобы остановить это, когда пользователь использует клавиатуру?Предотвращение выбора клавиатуры comboBox

+0

Лучшей, более распространенной практикой является помещение в поле со списком только элементов, которые можно выбрать. Это не будет препятствовать использованию клавиатуры (я, как пользователь, нашел бы это наступление!) И упростил бы код. – PhiLho

+0

согласны с вами. Но у моего клиента есть сила в этом случае :) – 2009-03-27 08:04:02

ответ

0
private void comboBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     e.Handled = true; 
    } 

С помощью этого вы можете отменить все действия клавиатуры на своем ComboBox.

Предположения: WinForms

+0

По той же логике я утверждаю, что ваш пример слишком широк по объему. Обратите внимание, что OP говорит: «Я блокирую пользователя, чтобы выбрать ** некоторые элементы **» – Cerebrus

+0

Мое прощение для комментария тогда :) – NileshChauhan

2

Откладывая вопросы юзабилити, вытекающие из такого рода требования (многие пользователи в привычку использовать клавиатуру и нашел бы не интуитивным), можно просто обработать KeyDown событие и установить KeyEventArgs.Cancel в True.

private void myCombo_KeyDown(object sender, KeyEventArgs e) 
{ 
    // Cancel the event if Up or Down keys are pressed. 
    if ((e.KeyCode == Keys.Down) || (e.KeyCode == Keys.Up)) 
    e.Handled = true; 
} 

Edit: Разъяснение прежде, чем я downvoted снова - Это пример который иллюстрирует способ. Это зависит от OP, чтобы решить, какие ключи он хочет запретить.^^

+0

Если у вас есть элемент с текстом, скажем «xyz», при нажатии «x» это будет выбран. Вышеприведенный код не справится с этим. – NileshChauhan

+0

Мой пример иллюстрирует. Я оставляю исключение определенных событий клавиатуры для OP. – Cerebrus

+0

Я согласен, Cerebrus. Я видел метод, я решил, как справиться с этим в моем случае – 2009-03-25 09:17:21

Смежные вопросы