C# 避免在树状视图中按键时选择新节点
当TreeView(WinForms)具有焦点时,按键选择文本以键字符开头的节点 有没有办法避免这种情况 我想到的第一件事是创建继承自TreeView的控件,并重写IsInputKey,以便在所有不需要的情况下返回falseC# 避免在树状视图中按键时选择新节点,c#,winforms,C#,Winforms,当TreeView(WinForms)具有焦点时,按键选择文本以键字符开头的节点 有没有办法避免这种情况 我想到的第一件事是创建继承自TreeView的控件,并重写IsInputKey,以便在所有不需要的情况下返回false 但它不起作用。有什么方法可以替代这种行为吗?我想我找到了一种可能的解决方法(虽然不优雅也不理想) 所以,我检查KeyDown事件,如果它发生,我将在一个变量中记录所选节点 之后,在AfterSelect事件中,我实际上再次选择了该节点 如果有人有更优雅的解决方案,那将是受欢
但它不起作用。有什么方法可以替代这种行为吗?我想我找到了一种可能的解决方法(虽然不优雅也不理想) 所以,我检查KeyDown事件,如果它发生,我将在一个变量中记录所选节点 之后,在AfterSelect事件中,我实际上再次选择了该节点
如果有人有更优雅的解决方案,那将是受欢迎的。我想我找到了一个可行的解决方案(虽然不优雅也不理想) 所以,我检查KeyDown事件,如果它发生,我将在一个变量中记录所选节点 之后,在AfterSelect事件中,我实际上再次选择了该节点
如果有人有更优雅的解决方案,这将是受欢迎的。对于TreeView(而不是表单)实现的按键和按键事件
e.Handled=false
将阻止节点的选择。此外,只有当TreeView已经聚焦时,才会触发这些事件。并且它不会阻止空格键。对于TreeView(而不是表单)的KeyPress和KeyDown事件
e.Handled=false
将阻止节点的选择。此外,只有当TreeView已经聚焦时,才会触发这些事件。并且它不会阻止空格键。设置
e.Handled=true在两个keyup
和keypress
事件中的code>。设置e.Handled=true
在两个keyup
和keypress
事件中。我还发现在keypdown事件中将e.superskeypress设置为true对我的应用程序来说不是一个好的解决方案。我还发现在keypdown事件中将e.superskeypress设置为true对我的应用程序来说不是一个好的解决方案。