手机
当前位置:查字典教程网 >编程开发 >C#教程 >C# 使用匿名函数解决EventHandler参数传递的难题
C# 使用匿名函数解决EventHandler参数传递的难题
摘要:首先,动态生成PictureBox,很简单,PictureBoxbox=newPictureBox();box.ImageLocation=...

首先,动态生成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及以上

【C# 使用匿名函数解决EventHandler参数传递的难题】相关文章:

c#匹配整数和小数的正则表达式

关于C# TabPage如何隐藏的问题

C# WinForm程序完全退出的问题解决

C#枚举数值与名称的转换实例分享

c# 匿名方法的小例子

使用SmtpClient发送邮件的方法

C# Winform 禁止用户调整ListView的列宽

使用HttpHanlder处理404:File not found的问题

C# 16进制与字符串、字节数组之间的转换

c# 解决IIS写Excel的权限问题

精品推荐
分类导航