c# treeview 获取点击的节点

 更新时间:2023-12-06   作者:  
c# winform 获取鼠标点击的treeview节点

方法一:点击事件+鼠标按下事件
如果直接用点击事件获取到的是上一次的节点,有问题所以拿一个更早的鼠标按下事件来设置一下选中的节点

void treeView1_MouseDown(object sender, MouseEventArgs e)
{
    //鼠标按下事件,把选中的焦点移动到当前的位置
    treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}

void treeView1_Click(object sender, EventArgs e)
{
    //可以拿到选中的节点(选中的是上一次的)
    TreeNode treeNode = treeView1.SelectedNode;
    MessageBox.Show(treeNode.Text);
}

方法二:选中事件
这个事件可以直接拿到点击的节点,但是初始化的时候也会执行一次所以需要加一个判断配合

void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
    if (e.Action.ToString() == "ByMouse")
    {
        // MessageBox.Show(e.Action + "");
        TreeNode treeNode = treeView1.SelectedNode;
    }
}