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