gpt4 book ai didi

c# - Windows 窗体 TreeView 始终选择焦点上的节点

转载 作者:太空狗 更新时间:2023-10-29 22:15:25 26 4
gpt4 key购买 nike

Windows 窗体中的 TreeView 似乎总是希望在重新获得焦点时选择一个节点。如果我没有选择任何节点,并且该 TreeView 获得焦点,我将获得一个选中第一个节点的 AfterSelect 事件,即使我没有使用键盘、鼠标或以编程方式选择它。我能找到的唯一解决方法是检查 TreeViewCancelEventArgs.Action 是否等于 TreeViewAction.Unknown 然后取消选择。这看起来真的很老套,所以我想知道是否有另一种方法可以解决这个问题。

最佳答案

我同意在这种情况下使用 TreeViewAction.Unknown 并不理想。考虑使用 BeforeSelect 事件,它提供了阻止 AfterSelect 事件的机会。

创建一个设置标志的 GotFocus 事件处理程序。然后,创建一个 BeforeSelect 事件处理程序,如果设置了标志,则取消事件并清除标志。例如:

private bool treeViewWasNewlyFocused = false;

private void TreeView1_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
if(treeViewWasNewlyFocused)
{
e.Cancel = true;
treeViewWasNewlyFocused = false;
}
}

private void TreeView1_GotFocus(object sender, EventArgs e)
{
treeViewWasNewlyFocused = true;
}

关于c# - Windows 窗体 TreeView 始终选择焦点上的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/800230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com