[英]c# How to add an eventhandler to many menus in a foreach loop?
我正在使用緊湊型框架,並且正在為Windows Mobile標准開發一個應用程序。 我有一個包含電話號碼的數組,我想為在該數組中找到的每個電話號碼添加一個子菜單。 這些子菜單必須是可單擊的,但是我不知道該怎么做。
這是我的代碼:
// "menuItemRight" is my main menu
// Send a message to the person
MenuItem smsMenu = new MenuItem();
smsMenu.Text = "Melding";
menuItemRight.MenuItems.Add(smsMenu);
foreach (string Number in aPhoneNumbers)
{
MenuItem mNumber = new MenuItem();
string sNumber = Number.Trim();
mNumber.Text = sNumber.Trim();
//SMS
mSMS.Text = sNumber.Trim();
smsMenu.MenuItems.Add(mSMS);
//mNumber.Click += new EventHandler(this.MenuClick);
}
所以我想要一個通用的事件處理程序,但是我不知道如何實現這一點。
希望可以有人幫幫我 :)
提前致謝
調用功能MenuClick
時,它會接收到一個被單擊MenuItem的對象arg(對象發送者)。
在此功能中具有數字:
string sNumber = ((MenuItem)sender).Text;
...
因為您將其存儲在該屬性的foreach循環中:
mNumber.Text = sNumber.Trim();
...
設置事件處理程序,使其將電話號碼(或您想傳遞的任何數據)作為事件參數。 您必須派生一個新的基於事件arg的類。
因此,您有一個處理程序,您可以在其中解壓縮事件args來查找要處理的項目。
MenuItem
的構造函數具有您所追求的( onClick
)
您可以稍微修改循環代碼,以在每個items .Tag
屬性中添加一些標識符,然后在事件處理程序中,將sender
參數轉換回MenuItem
。
高溫超導
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.