privatevoidForm1_Load(objectsender,EventArgse){TreeNodenewNode12=treeView1.Nodes.Add(... private void Form1_Load(object sender, EventArgs e)
{
TreeNode newNode12 = treeView1.Nodes.Add("大家好");//一级节点
newNode12.Nodes.Add("你好啊1");
newNode12.Nodes.Add("你好啊2");
newNode12.Nodes.Add("你好啊3");
}

private void treeView1_Click(object sender, EventArgs e)
{
MessageBox.Show(treeView1.SelectedNode.Text);
}

弹出的选项和选择的选项不符合。。怎么解决 那是因为你每次在触发Click的时候Treeview选择的节点还是上次选中的节点
如果你对同一节点点击两次以上就会显示正确的节点名称了!
当然还有其他的解决方法:
private void Form1_Load(object sender, EventArgs e)
{
treeView1.Nodes.Add(new TreeNode("父节点"));
TreeNode fnode = treeView1.Nodes[0];
fnode.Nodes.Add("子节点1");
fnode.Nodes.Add("子节点2");
fnode.Nodes.Add("子节点3");
}

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (treeView1.SelectedNode != null)
{
MessageBox.Show(treeView1.SelectedNode.Text);
}
}
^_^! 这个问题我也遇到过,原因是SelectedNode并不是你刚点上去的那个节点,而是之前选中的那一个。解决方法是在MouseDown事件里面写如下代码:
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if ((sender as TreeView) != null)
{
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}
}
MouseDown事件发生在Click事件之前,在这个时候就把SelectedNode转变成你鼠标点的那个节点就没问题了。
这样一定可以解决,解决不了是不可能的