在一个简单的对话框应用程序中,使用设计器,我在编辑菜单中设置了常用的剪切,复制,粘贴和删除快捷键。
我的问题是我只想在某个树控件处于焦点时处理删除事件。否则,在我的数据网格控件中,我希望删除像往常一样工作。
最好的方法是什么?目前我在主窗体类中获取了一个删除事件,但删除键在数据网格控件的编辑控件中不起作用。
编辑 - 指定删除键在编辑子控件中不起作用
答案 0 :(得分:2)
似乎如果您想使用菜单项的快捷键,那么无论您将keycombination
设置为除了某棵树之外没有做任何事情,都会在整个表单中使用eventhandler
控制是焦点(没有办法将键事件设置为.Handled=false
)。
因此,最好的方法是不在菜单条中设置快捷键,而是将KeyDown
事件挂钩在表单(keypreview
)或特定树控件上,处理删除快捷键应该执行的操作。
如果您需要显示快捷方式文本,即使您没有在菜单条中定义快捷键,请使用菜单项上的.ShortcutKeyDisplayString
属性来设置文本。
答案 1 :(得分:1)
如果您只有一个表单而且只有一个数据网格, 最简单的方法是从菜单项调用的click事件中触发datagrid删除事件。无论哪一行是当前行(bindingsource)或选择(datagrid),您都可以通过编程方式删除。