需要在TreeView控件上的某个节点上右键弹出菜单,在实际操作中无法定位当前右键点击的节点,SelectNode获得的是当前选中的节点,右键之后不能让当前右键点击的节点处于选中状态,只是左键选中哪个SelectNode就获得哪个节点。
我自己想到一个笨办法,虽然解决了问题,但总觉得不合心意。
把弹出菜单写到MouseUp事件里:
void TreeView_MouseUp(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { viewForm.popupMenu1.ShowPopup(Cursor.Position); if (viewForm.resTree1.TreeView.GetNodeAt(e.X, e.Y) != null) { viewForm.resTree1.TreeView.SelectedNode = viewForm.resTree1.TreeView.GetNodeAt(e.X, e.Y); } } }
总结:可以通过鼠标的位置获得当前节点,从而让它处于选中状态。
哪位有更好的方法,欢迎分享一下。