在树视图中编辑节点时,快捷键起作用
本文关键字:快捷键 起作用 节点 编辑 视图 | 更新日期: 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;
}
}
这个想法是,防止任何快捷方式发生,只要它们来自文本框。由于只处理控制键,因此这不应该包含您可能想要为名称输入的任何其他键。