Удалить в меню «Правка» - PullRequest
0 голосов
/ 11 декабря 2008

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

Моя проблема в том, что я хочу обрабатывать события удаления только тогда, когда в фокусе находится определенный элемент управления дерева. В противном случае, в моем элементе управления сеткой данных, например, я хочу, чтобы удаление работало как обычно.

Какой лучший способ сделать это? В настоящее время я получаю событие удаления в основном классе формы, но ключ удаления не работает в элементах управления редактирования в элементе управления сеткой данных.

Редактировать - указано, что клавиша удаления не работает в подэлементах редактирования

Ответы [ 2 ]

2 голосов
/ 11 декабря 2008

Похоже, что если вы хотите использовать сочетания клавиш для пунктов меню, то keycombination будет взято по всей вашей форме, независимо от того, настроите ли вы eventhandler, чтобы ничего не делать, если не в фокусе находится определенный элемент управления дерева (нет способа установить событие ключа как .Handled=false).

Таким образом, наилучшим способом было бы НЕ устанавливать комбинацию клавиш в строке меню, а вместо этого перехватывать событие KeyDown в форме (keypreview) или в конкретном элементе управления деревом и обрабатывать любые операции удаления. Сочетание клавиш должно делать там.

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

1 голос
/ 11 декабря 2008

Если у вас будет только одна форма и только одна сетка данных, самый простой способ - запустить события удаления сетки данных из события click, вызванного вашим пунктом меню. Независимо от того, какая строка является текущей (источник привязки) или выбранной (сетка данных), вы можете удалить программным способом.

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