您所在的位置: 首页 > 开发 > .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#连接数据库的方法简介
  2. 提供ADO Parameter相关查询工作
  3. Linq使用InsertOnSubmit方法剖析
  4. C#的一个URL加载器,能处理编码、相对地址解析
  5. 如何用asp+获取post的页面的数据问题
  6. 关于Visual C#装箱与拆箱的研究

上一篇:没有了 下一篇:NET中转发与跳转区别
浅析ASP.NET MVC生命周期
微软最新ASP.NET MVC框架Beta版技术细节(1)
详解C# WinForm自定义控件的使用和调试
大致了解ADO.NET参数相关问题
ASP.Net MVC框架配置与分析
loading.. 评论加载中....

频道推荐

更多>>
  • iPhone的曝出安全漏洞,读

  • 黑客Marienfeldt和他的伙伴Jim Herbeck近日发现一个iPhone的重大安全漏洞,该漏洞可导致iPhone安全措施失效,从而读取到..

推荐博文

推荐专题

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