树视图 C# 单击节点以显示文本

本文关键字:显示 文本 节点 单击 视图 | 更新日期: 2023-09-27 18:32:27

我有一个包含多个节点(例如a,b,c)的树视图。如果我单击"b",我希望"Hello"一词出现在文本框中。

我有这样的方法:

private void treeList_SelectedNodeChanged(object sender, System.EventArgs e)
{
    this.layoutControlItem1.Text="hello";
}

即使我没有单击节点,也会出现 hello 文本。我做得对吗?

树视图 C# 单击节点以显示文本

最好的使用事件是 NodeMouseClick

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    this.layoutControlItem1.Text = e.Node.Tag.ToString();
}

为每个节点获得不同按摩的最简单方法是将它们存储在节点的标签中:

someNode.Tag = "Some Message";

请注意,SelectionChanged的触发频率将超过您希望的触发频率,包括每次清除所选内容时。

如果需要包括键盘选择,则应在代码中包含对treeView1.SelectedNode != null的检查。

第一次加载表单时,将触发SelectedNodeChanged事件,因为您自己在Instanciate()或通过代码分配值。

我建议您使用全局变量来存储表单是否由Load事件加载:

private bool isLoad = false;
public Form1()
{
    InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
    isLoad = true;
}
private void treeList_SelectedNodeChanged(object sender, System.EventArgs e)
{
    if(isLoad)
    {
        this.layoutControlItem1.Text="hello";
    }
}