CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

ContextMenu+Treeview 高手请进

楼主wdcszl(Leithon)2006-05-01 03:08:54 在 .NET技术 / C# 提问

我在一个winform中托了2个控件,一个TreeView,,一个是ContextView,  
  TreeView中的Node是动态生成的  
  并且指定每个Node的ContextMenu都是ComtextMenu1  
  ContextMenu中的Item的click函数如何来区分这写Node呢?  
  比如:Node1的click函数显示Node1的name  
            Node2   的Click函数显示Node2的name 问题点数:100、回复次数:9Top

1 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-05-01 05:52:11 得分 20

在ContextMenu的PopUp事件中  
   
  写如下代码:  
   
   
   
  MessageBox.Show(this.contextMenu1.SourceControl.ToString());Top

2 楼Knight94(愚翁)回复于 2006-05-01 08:33:42 得分 80

you   can   use   "MouseDown"   event   to   get   current   tree   node.Top

3 楼wdcszl(Leithon)回复于 2006-05-01 10:27:39 得分 0

愚翁,我也想到这么做了,但是没有实现,能给个例子么?Top

4 楼Knight94(愚翁)回复于 2006-05-01 10:47:32 得分 0

Sample   code   as   follows:  
   
  private   TreeNode   tnSelected   =   null;  
   
  -------In   mouse   down   event---------  
  tnSelected   =   yourTreeView.GetNodeAt(   e.X,   e.Y   );  
  Top

5 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-05-01 11:54:15 得分 0

恩,我写的不对Top

6 楼wdcszl(Leithon)回复于 2006-05-01 13:57:14 得分 0

this.treeView1.ContextMenuStrip   =   this.contextMenuStrip1;  
                          this.treeView1.Location   =   new   System.Drawing.Point(12,   143);  
                          this.treeView1.Name   =   "treeView1";  
                          treeNode1.ContextMenuStrip   =   this.contextMenuStrip1;  
                          treeNode1.Name   =   "test";  
                          treeNode1.Text   =   "Node1";  
                          treeNode2.ContextMenuStrip   =   this.contextMenuStrip1;  
                          treeNode2.Name   =   "123";  
                          treeNode2.Text   =   "Node0";  
                          treeNode3.ContextMenuStrip   =   this.contextMenuStrip1;  
                          treeNode3.Name   =   "122";  
                          treeNode3.Text   =   "Node1";  
                          this.treeView1.Nodes.AddRange(new   System.Windows.Forms.TreeNode[]   {  
                          treeNode1,  
                          treeNode2,  
                          treeNode3});  
                          this.treeView1.Size   =   new   System.Drawing.Size(121,   97);  
                          this.treeView1.TabIndex   =   2;                
  ..........................................................................  
   
  this.toolStripMenuItem3.MouseDown   +=   new   System.Windows.Forms.MouseEventHandler(this.toolStripMenuItem3_Click);  
   
  ...........................  
      private   TreeNode   tn   =   null;  
      private   void   toolStripMenuItem3_Click(object   sender,   System.Windows.Forms.MouseEventArgs   e)  
                  {  
                           
                          tn   =   this.treeView1.GetNodeAt(e.X,e.Y);  
                          MessageBox.Show("Click!   "+tn.Name);  
                           
                  }  
   
   
  点哪个节点都显示"Click!test"啊,帮忙看下哪个地方不对  
   
  Top

7 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-05-01 14:04:23 得分 0

我觉得渔翁说的是在treeview的mouse   down事件里边判断是否右键  
   
  然后赋值  
   
  最后在contextmenu里边显示Top

8 楼Knight94(愚翁)回复于 2006-05-01 14:11:46 得分 0

tn   =   this.treeView1.GetNodeAt(e.X,e.Y);  
   
  这句的位置写的不对,应该在treeview的mousedown事件去做Top

9 楼wdcszl(Leithon)回复于 2006-05-01 14:19:51 得分 0

搞定,谢谢2位Top

相关问题

关键词

得分解答快速导航

  • 帖主:wdcszl
  • xxuu503
  • Knight94

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo