日期:2014-05-18  浏览次数:20878 次

如何从右击的toolstripmenuiterm得到所对应的treeview node的Index
我有这样一个模型
treeview
      node1
      node2
    ......
      noden
在每个node上通过程序
      treeview-> nodes[i]-> ContextMenuStrip   =toolstripmenuitem
绑定了一个固定的环境菜单,但是我希望不同node右击时环境菜单能够识别是哪个node右击了,在toolstripmenuitem   的click触发程序中改怎么识别node的Index呢?

------解决方案--------------------
要沉了貌似,顶上
------解决方案--------------------
treeView.HitTest(x, y)方法试试吧,祝你好运!

软件(源码)详情 http://future-tech.czm.cn

###############################################
提供C#源码、控件、解决方案以及各种系统维护服务。
并承接软件开发、毕业设计等客制化软件专案及定单。
###############################################
------解决方案--------------------
测试了一发现问题,右单击选中Node的不一定是this.treeView1.SelectedNode
楼主可以尝试这样
添加TreeView 的 NodeMouseClick 事件处理
添加一个成员变量 private int clickIndex = 0;
在处理函数,把索引保存下来

private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
// MessageBox.Show(e.Node.Index.ToString());
this.clickIndex = e.Node.Index;
}
}