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

解决方案 »

  1.   

    EventArgs e 没有item这个属性呀
      

  2.   

    treeView.HitTest(x, y)方法试试吧,祝你好运!软件(源码)详情 http://future-tech.czm.cn###############################################
    提供C#源码、控件、解决方案以及各种系统维护服务。
    并承接软件开发、毕业设计等客制化软件专案及定单。
    ###############################################
      

  3.   

    那你就手动的去修改事件委托吧,
    把所有的click事件 += 委托到同一个方法
    然后根据sender来判断
      

  4.   

    对不起理解错误
    但你可以从这个属性判断啊
    this.treeView1.SelectedNode.Index
      

  5.   

    测试了一发现问题,右单击选中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;
         }
    }
      

  6.   

    sender我试过,是toolstripmenuitem,parent是contextmenu,再parent就出错了:)