簡體   English   中英

c#如何將事件處理程序添加到foreach循環中的許多菜單?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM