C# 使用匿名函數(shù)解決EventHandler參數(shù)傳遞的難題
更新時(shí)間:2009年05月15日 00:03:42 作者:
C#動(dòng)態(tài)生成PictureBox并綁定右鍵菜單,實(shí)現(xiàn)刪除圖片
首先,動(dòng)態(tài)生成PictureBox,很簡(jiǎn)單,
PictureBox box = new PictureBox() ;
box.ImageLocation = imageRoad ;
其次,給PictureBox添加右鍵菜單,也不難,
ContextMenu menu = new ContextMenu();
box.ContextMenu = menu ;
然后,要給右鍵菜單增加“刪除”項(xiàng),并實(shí)現(xiàn)刪除圖片事件。這個(gè),比較麻煩。
MenuItem item = new MenuItem("刪除") ;
menu.MenuItems.Add( item , new EventHandler( item_Click )) ;
void item_Click(object sender, EventArgs e)
{
// 增加刪除圖片的功能
// 1、獲取圖片對(duì)象
// 2、刪除圖片
}
在item_Click方法中,由于無(wú)法獲得圖片對(duì)象的值,所以無(wú)法進(jìn)行刪除操作。除非,在item_Click方法中,能夠?qū)ictureBox對(duì)象作為參數(shù)傳遞進(jìn)來(lái)。這個(gè),沒(méi)想出來(lái)怎么實(shí)現(xiàn)。
嘗試使用匿名方法,
menu.MenuItems.Add( item, delegate(Object o,EventHandler e){ box.ImageLocation = "" ; });
由于匿名方法是在方法體內(nèi),因此,可以將box作為參數(shù)傳遞進(jìn)來(lái)。
總結(jié):使用匿名方法實(shí)現(xiàn)事件參數(shù)的傳遞,因?yàn)槟涿椒梢允褂猛獠繀?shù)。
關(guān)鍵詞:事件、委托、匿名方法
語(yǔ)言平臺(tái):C# 2.0及以上
PictureBox box = new PictureBox() ;
box.ImageLocation = imageRoad ;
其次,給PictureBox添加右鍵菜單,也不難,
ContextMenu menu = new ContextMenu();
box.ContextMenu = menu ;
然后,要給右鍵菜單增加“刪除”項(xiàng),并實(shí)現(xiàn)刪除圖片事件。這個(gè),比較麻煩。
MenuItem item = new MenuItem("刪除") ;
menu.MenuItems.Add( item , new EventHandler( item_Click )) ;
void item_Click(object sender, EventArgs e)
{
// 增加刪除圖片的功能
// 1、獲取圖片對(duì)象
// 2、刪除圖片
}
在item_Click方法中,由于無(wú)法獲得圖片對(duì)象的值,所以無(wú)法進(jìn)行刪除操作。除非,在item_Click方法中,能夠?qū)ictureBox對(duì)象作為參數(shù)傳遞進(jìn)來(lái)。這個(gè),沒(méi)想出來(lái)怎么實(shí)現(xiàn)。
嘗試使用匿名方法,
menu.MenuItems.Add( item, delegate(Object o,EventHandler e){ box.ImageLocation = "" ; });
由于匿名方法是在方法體內(nèi),因此,可以將box作為參數(shù)傳遞進(jìn)來(lái)。
總結(jié):使用匿名方法實(shí)現(xiàn)事件參數(shù)的傳遞,因?yàn)槟涿椒梢允褂猛獠繀?shù)。
關(guān)鍵詞:事件、委托、匿名方法
語(yǔ)言平臺(tái):C# 2.0及以上
相關(guān)文章
解析Silverlight調(diào)用WCF/Rest異常的解決方法
本篇文章對(duì)Silverlight調(diào)用WCF/Rest異常的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C#窗體編程(windows forms)禁止窗口最大化的方法
這篇文章主要介紹了C#窗體編程(windows forms)禁止窗口最大化的方法,以及避免彈出系統(tǒng)菜單和禁止窗口拖拽的方法,需要的朋友可以參考下2014-08-08C#實(shí)現(xiàn)動(dòng)態(tài)加載dll的方法
這篇文章主要介紹了C#實(shí)現(xiàn)動(dòng)態(tài)加載dll的方法,涉及針對(duì)動(dòng)態(tài)鏈接庫(kù)的靈活操作技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12