在编辑菜单中删除

时间:2008-12-11 10:48:35

标签: c# winforms

在一个简单的对话框应用程序中,使用设计器,我在编辑菜单中设置了常用的剪切,复制,粘贴和删除快捷键。

我的问题是我只想在某个树控件处于焦点时处理删除事件。否则,在我的数据网格控件中,我希望删除像往常一样工作。

最好的方法是什么?目前我在主窗体类中获取了一个删除事件,但删除键在数据网格控件的编辑控件中不起作用。

编辑 - 指定删除键在编辑子控件中不起作用

2 个答案:

答案 0 :(得分:2)

似乎如果您想使用菜单项的快捷键,那么无论您将keycombination设置为除了某棵树之外没有做任何事情,都会在整个表单中使用eventhandler控制是焦点(没有办法将键事件设置为.Handled=false)。

因此,最好的方法是不在菜单条中设置快捷键,而是将KeyDown事件挂钩在表单(keypreview)或特定树控件上,处理删除快捷键应该执行的操作。

如果您需要显示快捷方式文本,即使您没有在菜单条中定义快捷键,请使用菜单项上的.ShortcutKeyDisplayString属性来设置文本。

答案 1 :(得分:1)

如果您只有一个表单而且只有一个数据网格, 最简单的方法是从菜单项调用的click事件中触发datagrid删除事件。无论哪一行是当前行(bindingsource)或选择(datagrid),您都可以通过编程方式删除。