在树视图中编辑节点期间,快捷键正在工作

时间:2014-10-31 06:35:07

标签: c# .net wpf treeview

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

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

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

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

需要尽快解决此问题。

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

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