右键单击treeview弹出菜单,但选中的节点却是之前用左键选中的那个节点,而不是这时用右键选中的那个。
解决方法:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);//选中该节点
Point p = this.treeView1.PointToClient(Cursor.Position);
this.contextMenuStrip1.Show(this.treeView1,p);
}
}
注意,必须通过GetNodeAt函数获取node,而不能将一个node直接赋给SelectedNode