c#如何将eventhandler添加到foreach循环中的多个菜单中?

c#如何将eventhandler添加到foreach循环中的多个菜单中?,c#,foreach,event-handling,C#,Foreach,Event Handling,我正在使用compact框架,并且正在为windows mobile标准制作一个应用程序。 我有一个包含电话号码的数组,我想为在该数组中找到的每个号码添加一个子菜单。这些子菜单必须是可点击的,但我不知道怎么做 这是我的代码: // "menuItemRight" is my main menu // Send a message to the person MenuItem smsMenu = new MenuIte

我正在使用compact框架,并且正在为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);
            }
所以我想要的是一个通用的eventhandler,但我不知道如何实现它

希望有人能帮我:)


提前感谢

设置事件处理程序,使其将电话号码(或任何您想要传递的数据)作为事件参数。您必须派生一个新的基于事件arg的类


因此,您有一个处理程序,可以在其中解包事件参数,以找出您正在处理的项目。

设置事件处理程序,使其以电话号码(或您想要传递的任何数据)作为事件参数。您必须派生一个新的基于事件arg的类


因此,您有一个处理程序,在该处理程序中,您可以解包事件参数,以找出您正在处理的项。

MenuItem的构造函数具有您想要的内容(
onClick

您可以稍微修改循环代码,将一些标识符放入每个项
.Tag
属性,然后在事件处理程序中,将
sender
参数转换回
MenuItem


HTH

菜单项的构造函数具有您想要的内容(
onClick

您可以稍微修改循环代码,将一些标识符放入每个项
.Tag
属性,然后在事件处理程序中,将
sender
参数转换回
MenuItem


HTH

调用函数
MenuClick
时,它接收到一个对象arg(对象发送器),该对象就是所单击的菜单项

要在此函数中包含数字,请执行以下操作:

string sNumber = ((MenuItem)sender).Text;
...
因为您将其存储在该属性的foreach循环中:

mNumber.Text = sNumber.Trim();
...

调用函数
MenuClick
时,它会收到一个对象arg(对象发送器),该对象是所单击的菜单项

要在此函数中包含数字,请执行以下操作:

string sNumber = ((MenuItem)sender).Text;
...
因为您将其存储在该属性的foreach循环中:

mNumber.Text = sNumber.Trim();
...

我有更多的信息要发送。带有联系信息的字符串。你会怎么做。当然,我可以用数字作为标识创建一个全局数组,但我想有更好的方法。顺便说一句,谢谢大家的回答。这很有帮助:)@ikky-您的事件参数可以是一个包含所有信息的结构。你不局限于简单的类型。我有更多的信息要发送。带有联系信息的字符串。你会怎么做。当然,我可以用数字作为标识创建一个全局数组,但我想有更好的方法。顺便说一句,谢谢大家的回答。这很有帮助:)@ikky-您的事件参数可以是一个包含所有信息的结构。你不局限于简单的类型。