在树视图中编辑节点时,快捷键起作用

本文关键字:快捷键 起作用 节点 编辑 视图 | 更新日期: 2023-09-27 18:28:29

我的表单中有一个树视图。它有一个关联的上下文菜单条。上下文菜单条包含以下项目:-创建新节点、创建子节点、重命名节点、删除节点。我有所有这些项目的快捷方式。

我的问题是,当我创建一个新节点(为节点输入文本)时,如果我按下Ctrl+S(创建子节点的快捷键),它将触发"创建子节点"项目的单击事件。

上下文菜单条中的所有项目都会发生这种情况。

现在,1.当我仍在编辑或创建节点时,如何停止快捷键启动?2.在编辑或创建节点期间,是否有任何属性或事件需要处理以阻止快捷键触发相应的事件?

需要尽快解决此问题。

谢谢。

在树视图中编辑节点时,快捷键起作用

根据输入新节点名称的位置,可以订阅树视图或树视图项的PreviewKeyDown事件。

为了防止某个按键触发快捷方式,可以将handled属性设置为true。以下示例假设您在文本框中输入新节点的名称。

private void UIElement_OnKeyDown(object sender, KeyEventArgs e)
{
    if (sender is TextBox && (e.Key == Key.LeftCtrl || e.Key == Key.RightCtrl))
    {
        e.Handled = true;
    }
}

这个想法是,防止任何快捷方式发生,只要它们来自文本框。由于只处理控制键,因此这不应该包含您可能想要为名称输入的任何其他键。