C# 使用匿名函数解决EventHandler参数传递的难题
发布时间:2020-12-15 05:54:43 所属栏目:百科 来源:网络整理
导读:首先,动态生成PictureBox,很简单, PictureBox box = new PictureBox() ; box.ImageLocation = imageRoad ; 其次,给PictureBox添加右键菜单,也不难, ContextMenu menu = new ContextMenu(); box.ContextMenu = menu ; 然后,要给右键菜单增加“删除”项,
首先,动态生成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及以上 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |