您所在的位置: 首页 > 开发 > .Net >

C#中使用匿名函数解决EventHandler参数传递的难题

http://www.j2mehome.com  2009-05-07 12:43  点击: 未知   我要评论( )
  • 摘要:C#动态生成PictureBox并绑定右键菜单,实现删除图片 首先,动态生成PictureBox,很简单, PictureBox box = new PictureBox() ; box.ImageLocation = imageRoad ; 其次,给PictureBox添加右键菜单,也不难, Cont
  • Tags: 传递 难题 解决 匿名 参数 使用

C#动态生成PictureBox并绑定右键菜单,实现删除图片

 

首先,动态生成PictureBox,很简单,

PictureBox box = new PictureBox() ;
box.ImageLocation = imageRoad ;

 

其次,给PictureBox添加右键菜单,也不难,

ContextMenu menu = new ContextMenu();
box.ContextMenu = menu ;

 

然后,要给右键菜单增加“删除”项,并实现删除图片事件。这个,比较麻烦。
MenuItem item = new MenuItem("删除") ;
menu.MenuItems.Add( item , new EventHandler( item_Click )) ;

void item_Click(object sender, EventArgs e)
{
   // 增加删除图片的功能
   // 1、获取图片对象
   // 2、删除图片
}

 

在item_Click方法中,由于无法获得图片对象的值,所以无法进行删除操作。除非,在item_Click方法中,能够将PictureBox对象作为参数传递进来。这个,没想出来怎么实现。

 

尝试使用匿名方法,
menu.MenuItems.Add( item, delegate(Object o,EventHandler e){ box.ImageLocation = "" ; });
由于匿名方法是在方法体内,因此,可以将box作为参数传递进来。

 

总结:使用匿名方法实现事件参数的传递,因为匿名方法可以使用外部参数。
关键词:事件、委托、匿名方法
语言平台:C# 2.0及以上

【编辑推荐】

  1. C#操作Word之创建、打开Word
  2. C#中使用匿名函数解决EventHandler参数传递的难题
  3. Linq调用SubmitChanges方法
  4. C#数据访问层简单概述
  5. 浅析C++中的C++语法
  6. 解析C# CLR的15个细节

上一篇:没有了 下一篇:NET中转发与跳转区别
图示介绍ADO.NET数据集相关使用
图示法ADO.NET Entity Framework步骤相关分析
学习C#接口编程——C#接口转换
分析C++开发时注意问题介绍
C#自定义消息框的设置图解
loading.. 评论加载中....

频道推荐

更多>>
  • 酷派N900+新突破劲霸登场

  • 酷派N900+外形上采用了简约奢华设计及高端材质,并融入贵金属元素,设计灵感来源于19世纪皇家酒器,尽显阳刚气质..

推荐博文

Copyright©2005-2009 J2MEHOME.COM 版权所有 未经许可 请勿转载
冀ICP备07502291号