教程集 www.jiaochengji.com
教程集 >  脚本编程  >  Asp.net  >  正文 c#.net 匿名函数进行EventHandler参数传递的问题

c#.net 匿名函数进行EventHandler参数传递的问题

发布时间:2015-12-11   编辑:jiaochengji.com
C# .net 匿名函数进行EventHandler参数传递的问题,有遇到此类问题的朋友,可以参考下。实现:C#动态生成PictureBox并绑定右键菜单,删除图片。

C# 匿名函数进行EventHandler参数传递的问题,有遇到此类问题的朋友,可以参考下。
实现:C#动态生成PictureBox并绑定右键菜单,删除图片。

1、动态生成PictureBox
 

复制代码 代码示例:
PictureBox box = new PictureBox() ;
box.ImageLocation = imageRoad ;

2、给PictureBox添加右键菜单
 

复制代码 代码示例:
ContextMenu menu = new ContextMenu();
box.ContextMenu = menu ;

3、给右键菜单增加“删除”项,并实现删除图片事件。
 

复制代码 代码示例:
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#.net中的事件、委托、匿名方法,要求C# 2.0及以上语言环境。

希望以上内容,可以帮助到大家,脚本学堂,专心为您每一天。

您可能感兴趣的文章:
c#.net 匿名函数进行EventHandler参数传递的问题
[Introduction]匿名函数
Asp.Net事件模型总结
asp.net事件传递及wpf路由代理实例
关于PHP中闭包的详细讲解(附详细实例)
C#入门学习笔记之C#匿名方法
C#3.0 匿名类型介绍
PHP中的闭包
go基础(6)函数
15Go语言:函数是“一等公民“

[关闭]
~ ~