gpt4 book ai didi

c# - TreeView 选择的项目

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:07 26 4
gpt4 key购买 nike

我的应用程序中有树节点,它是动态创建的。当右键单击 我想要获取被单击的节点文本的任何节点时。我使用该值为了我的进一步处理。我尝试使用选定的节点属性,但有时它不起作用。

提前致谢

代码:

public void CmsAppList_RightClicked(object sender, MouseEventArgs e) 
{
AddUser _addUser = new AddUser(this.Text); // i want to get that value to this constructor
_addUser.ShowDialog();
}

最佳答案

这是大多数列表控件的已知问题,要解决此问题,请向 TreeView 的 MouseDown 事件添加一个事件处理程序,并在右键单击时设置所选节点,如下所示。我的 TreeView 名称是 treeView1 只需相应地更改即可。

    private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
treeView1.SelectedNode = treeView1.GetNodeAt(e.Location);
}

现在 selectednode 应该总是反射(reflect)你最后点击的节点。

编辑(更正这是已知问题并说明这是设计使然)

我一直在考虑更新这个答案,因为我意识到我所说的这个已知问题在多个列表控件上是错误的。

假设这是一个已知问题,我们修复了它,然后右键单击和左键单击具有相似的行为,除了右键单击执行所有操作(左键单击执行)然后打开上下文菜单。这听起来不错,直到我们仔细查看上下文菜单(右键单击)的性质,假设您选择了 15 个文件,然后单击(左)第 16 个文件,选择丢失了 :) 所以您选择了 15 个文件,然后右键单击上下文菜单,然后操作适用于所有选定的 15 个文件。

这就是右键单击不应更改任何 View (在列表框或 TreeView 或资源管理器窗口中)中的选择的原因。如果是这样,那么多选和控制+选择功能就会中断,最终右键单击作为上下文特定操作的特殊意义将会丢失。这就是右键单击不会选择单击的节点的原因,这是正确的。上面提供的代码用于启用右键单击选择的特定目的。并考虑这种解决方法或异常行为对用户体验的影响。

关于c# - TreeView 选择的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5351324/

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