簡體   English   中英

在 C# 中點擊 MenuStrip 項

[英]Get clicked MenuStrip Item in C#

我想獲取單擊的MenuStrip項目的名稱,以根據名稱啟動其他 Forms。

到目前為止我嘗試了這個,但它不起作用:

private void menu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    ToolStripMenuItem mi = sender as ToolStripMenuItem;
    ToolStripItem menuItem = sender as ToolStripItem;
    if(menuItem!= null)
    {

        ContextMenuStrip owner = menuItem.Owner as ContextMenuStrip;
        if(owner!= null)
        {
            Control sourceControl = owner.SourceControl;
        }
    }

}

mi 和 menuItem 都是 null。 誰能解釋我如何獲得該項目的名稱?

這對我有用:

private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    MessageBox.Show(e.ClickedItem.Text);
}

您正在單擊菜單條本身。 雙擊菜單上的項目或生成這樣的事件。

private void menu_ItemClicked(object sender, EventArgs e)
{
    var itemText = (sender as ToolStripMenuItem).Text;
    MessageBox.Show(itemText);
} 

這是另一種方式:

private void contextMenuStrip_Click(object sender, Eventargs e)
{
    ((System.Windows.Forms.ContextMenuStrip)(sender)).GetItemAt(((System.Windows.Forms.MouseEventArgs)(e)).X, ((System.Windows.Forms.MouseEventArgs)(e)).Y).Text 
}

要在菜單條上獲取選定的 menuItem,可以執行以下操作:

private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    string itemText = e.ClickedItem.Text;


    switch (itemText)
    {
        case "menu name 1":
            //do stuff
            break;

        case "menu name 2":
            // do stuff
            break;
    }
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { string itemText = e.ClickedItem.Text; switch (itemText) { case "menu name 1": //do stuff break; case "menu name 2": // do stuff break; } }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM