Избегайте выбора нового узла при нажатии клавиши в TreeView - PullRequest
1 голос
/ 07 августа 2010

Когда TreeView (WinForms) имеет фокус, нажатие клавиши выбирает узел, текст которого начинается с ключевого символа.

Есть ли способ избежать этого?

Первое, что пришло мне в головудолжен был создать элемент управления, который наследуется от TreeView, и переопределить IsInputKey, чтобы он возвращал false во всех нежелательных случаях.

Но это не работает.Есть ли способ отменить это поведение?

Ответы [ 3 ]

2 голосов
/ 11 августа 2010

Для событий KeyPress и KeyDown TreeView (не для формы), реализующих

e.Handled = false;

заблокирует выбор узла. Более того, эти события будут срабатывать только тогда, когда TreeView уже сфокусирован. И он не будет блокировать клавишу пробела.

2 голосов
/ 01 августа 2012

Установите e.Handled = true; в обоих keyup и keypress событиях.

0 голосов
/ 07 августа 2010

Я думаю, что нашел один возможный обходной путь (хотя не элегантный и не идеальный)

Итак, я проверяю событие KeyDown, и если это происходит, я записываю выбранный узел в одну переменную.

После этого в событии AfterSelect я на самом деле снова выбираю этот узел.

Если у кого-то есть более элегантное решение, это будет приветствоваться.

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