c#如何将eventhandler添加到foreach循环中的多个菜单中?
我正在使用compact框架,并且正在为windows mobile标准制作一个应用程序。 我有一个包含电话号码的数组,我想为在该数组中找到的每个号码添加一个子菜单。这些子菜单必须是可点击的,但我不知道怎么做 这是我的代码: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
// "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-您的事件参数可以是一个包含所有信息的结构。你不局限于简单的类型。