Treeview C#单击节点以显示文本

时间:2016-01-28 14:16:28

标签: c# visual-studio-2012 treeview nodes

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

我有这样的方法:

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

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

2 个答案:

答案 0 :(得分:1)

使用的最佳事件是NodeMouseClick

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

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

someNode.Tag = "Some Message";

请注意,SelectionChanged的触发频率会超出您的预期,包括每次清除选择时都会发生..

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

答案 1 :(得分:0)

第一次加载表单时,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";
    }
}