首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#窗体- MenuItem单击事件-获取MenuItem文本

C#窗体- MenuItem单击事件-获取MenuItem文本
EN

Stack Overflow用户
提问于 2011-03-30 23:22:58
回答 5查看 12K关注 0票数 1

如何获取已单击的任何给定菜单项的文本?

菜单是动态填充的,所以我似乎仅限于此:

代码语言:javascript
复制
 Menu.MenuItems.Add(new MenuItem("MenuName", new EventHandler(menu_click)));

不幸的是,我看不到Eventhandler有被点击的菜单项的文本/名称。

有什么办法可以解决这个问题吗?

EN

回答 5

Stack Overflow用户

发布于 2011-03-30 23:27:27

这是什么类型的菜单?

既然你似乎直接将事件附加到菜单项,那么我猜发送者就是你正在寻找的……

代码语言:javascript
复制
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(?)
}
票数 6
EN

Stack Overflow用户

发布于 2011-03-30 23:26:52

事件处理程序应具有object sender参数。如果将其强制转换为MenuItem,则应该能够访问Header属性。

代码语言:javascript
复制
void menu_click (object sender, EventArgs e)
{
    var clickedItem = sender as MenuItem;

    if (clickedItem == null)
        return;

    if (clickedItem.HasHeader)
    {
        var text = clickedItem.Header;
    }
}
票数 2
EN

Stack Overflow用户

发布于 2011-03-30 23:27:37

您的事件处理程序将被赋予引发事件的对象作为"sender“参数。您必须将其转换为文本,然后检查其“MenuItem”属性:

代码语言:javascript
复制
public void MenuClickHandler(object sender, EventArgs e)
{
   var menuItem = (MenuItem)sender;

   var menuText = menuItem.Text;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5488397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档