Родитель контекстного меню?

Привет, я добавил контекстное меню на ярлыке (С#, winforms). мое контекстное меню с 3 дочерними элементами, и я хочу отображать текст ярлыка, когда я нажимаю на любое из элементов контекстного меню.

заблаговременно

Ответ 1

Элемент ContextMenuStrip имеет SourceControl, который будет иметь ссылку на элемент управления, который его открыл. Вы можете использовать это, чтобы извлечь текст из элемента управления:

private void MenuStripItem_Click(object sender, EventArgs e)
{
    ToolStripItem item = (sender as ToolStripItem);
    if (item != null)
    {
        ContextMenuStrip owner = item.Owner as ContextMenuStrip;
        if (owner != null)
        {
            MessageBox.Show(owner.SourceControl.Text);
        }
    }
}

Если вместо ContextMenuStrip используйте ContextMenu, код должен выглядеть так:

private void menuItem1_Click(object sender, EventArgs e)
{
    MenuItem item = (sender as MenuItem);
    if (item != null)
    {
        ContextMenu owner = item.Parent as ContextMenu;
        if (owner != null)
        {
            MessageBox.Show(owner.SourceControl.Text);
        }
    }
}

Ответ 2

Получить имя родительского контроля контекстного меню MessageBox.Show(contextMenuStrip1.SourceControl.Name.ToString());