如何获取已单击的任何给定菜单项的文本?
菜单是动态填充的,所以我似乎仅限于此:
Menu.MenuItems.Add(new MenuItem("MenuName", new EventHandler(menu_click)));不幸的是,我看不到Eventhandler有被点击的菜单项的文本/名称。
有什么办法可以解决这个问题吗?
发布于 2011-03-30 23:27:27
这是什么类型的菜单?
既然你似乎直接将事件附加到菜单项,那么我猜发送者就是你正在寻找的……
private void menu_click(object sender, EventArgs e)
{
MenuItem mi = sender as MenuItem;
// Access the clicked item here..
string text = mi.Text; // I guess it's called text(?)
}发布于 2011-03-30 23:26:52
事件处理程序应具有object sender参数。如果将其强制转换为MenuItem,则应该能够访问Header属性。
void menu_click (object sender, EventArgs e)
{
var clickedItem = sender as MenuItem;
if (clickedItem == null)
return;
if (clickedItem.HasHeader)
{
var text = clickedItem.Header;
}
}发布于 2011-03-30 23:27:37
您的事件处理程序将被赋予引发事件的对象作为"sender“参数。您必须将其转换为文本,然后检查其“MenuItem”属性:
public void MenuClickHandler(object sender, EventArgs e)
{
var menuItem = (MenuItem)sender;
var menuText = menuItem.Text;
}https://stackoverflow.com/questions/5488397
复制相似问题