【问题标题】:Delete in Edit menu在编辑菜单中删除
【发布时间】:2008-12-11 10:48:35
【问题描述】:

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

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

最好的方法是什么?目前我在主窗体类中收到一个删除事件,但删除键在 datagrid 控件的编辑控件中不起作用。

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

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    似乎如果您想使用菜单项的快捷键,则keycombination 会在整个表单中使用,无论您是否将eventhandler 设置为不执行任何操作,除非某个树控件处于焦点位置(无法将按键事件设置为.Handled=false)。

    所以最好的方法是不在菜单条中设置快捷键,而是在表单 (keypreview) 或特定树控件上挂钩 KeyDown 事件,并处理任何删除快捷键应该在那里。

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

    【讨论】:

    • 这是最好的答案,尽管它可能会覆盖表单或工具条的 ProcessCmdKey 并指示如果活动控件是编辑则不需要 DEL 键。
    【解决方案2】:

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

    【讨论】:

    • 啊,我可能不太清楚。这是删除键不起作用的数据网格控件中的编辑窗口。我将编辑我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多