C#Windows窗体-菜单项单击事件-获取菜单项文本

C#Windows窗体-菜单项单击事件-获取菜单项文本,c#,winforms,C#,Winforms,如何获取已单击的任何给定菜单项的文本 菜单是动态填充的,因此我似乎仅限于此: Menu.MenuItems.Add(new MenuItem("MenuName", new EventHandler(menu_click))); 不幸的是,我看不到Eventhandler具有已单击菜单项的文本/名称 有办法解决这个问题吗?事件处理程序应该有一个对象发送器参数。如果将其强制转换为菜单项,则应该能够访问标题属性 void menu_click (object sender, EventArgs

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

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

 Menu.MenuItems.Add(new MenuItem("MenuName", new EventHandler(menu_click)));
不幸的是,我看不到Eventhandler具有已单击菜单项的文本/名称


有办法解决这个问题吗?

事件处理程序应该有一个
对象发送器
参数。如果将其强制转换为
菜单项
,则应该能够访问
标题
属性

void menu_click (object sender, EventArgs e)
{
    var clickedItem = sender as MenuItem;

    if (clickedItem == null)
        return;

    if (clickedItem.HasHeader)
    {
        var text = clickedItem.Header;
    }
}

事件处理程序应该有一个
对象发送方
参数。如果将其强制转换为
菜单项
,则应该能够访问
标题
属性

void menu_click (object sender, EventArgs e)
{
    var clickedItem = sender as MenuItem;

    if (clickedItem == null)
        return;

    if (clickedItem.HasHeader)
    {
        var text = clickedItem.Header;
    }
}

使用标准的.NET事件处理程序函数签名

(sender as Object, e as EventArgs) ' VB.NET syntax

。。。在事件处理程序中,您可以将
sender
强制转换为
MenuItem
,并访问所有属性。

使用标准的.NET事件处理程序函数签名

(sender as Object, e as EventArgs) ' VB.NET syntax

。。。在事件处理程序中,您可以将
sender
转换为
MenuItem
,并访问所有属性。

这是什么类型的菜单

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

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(?)
}

这是什么菜单

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

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(?)
}

您的事件处理程序将获得引发事件的对象作为“sender”参数。您必须将其强制转换为MenuItem,然后检查其“Text”属性:

public void MenuClickHandler(object sender, EventArgs e)
{
   var menuItem = (MenuItem)sender;

   var menuText = menuItem.Text;
}

您的事件处理程序将获得引发事件的对象作为“sender”参数。您必须将其强制转换为MenuItem,然后检查其“Text”属性:

public void MenuClickHandler(object sender, EventArgs e)
{
   var menuItem = (MenuItem)sender;

   var menuText = menuItem.Text;
}

您可以将发送者对象强制转换为菜单项并检索文本属性

void menu_click (object sender, EventArgs e)
{
    var clickedItem = sender as MenuItem;

    if (clickedItem == null)
        return;

    if (clickedItem.HasHeader)
    {
        var text = clickedItem.Header;
    }
}
示例代码

Menu.MenuItems.Add(new MenuItem("MenuName", (o, ev) =>
{
    MessageBox.Show((o as MenuItem).Text);
}));

您可以将发送者对象强制转换为菜单项并检索文本属性

void menu_click (object sender, EventArgs e)
{
    var clickedItem = sender as MenuItem;

    if (clickedItem == null)
        return;

    if (clickedItem.HasHeader)
    {
        var text = clickedItem.Header;
    }
}
示例代码

Menu.MenuItems.Add(new MenuItem("MenuName", (o, ev) =>
{
    MessageBox.Show((o as MenuItem).Text);
}));

问一个简单的问题,得到很多类似的答案:)哈……只有你知道答案,它们才容易!!问一个简单的问题,得到很多类似的答案:)哈……只有你知道答案,它们才容易!!