13

こんにちは私はラベル(c#、winforms)にコンテキストメニューを追加しました。3つの子アイテムがあるコンテキストメニューで、コンテキストメニューアイテムのいずれかをクリックしたときにラベルテキストを表示したい。

前もって感謝します

4

3 に答える 3

27

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);
        }
    }
}

a の代わりに a を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);
        }
    }
}
于 2009-08-26T11:55:26.980 に答える
1

コンテキスト メニューの親コントロール名を取得 MessageBox.Show(contextMenuStrip1.SourceControl.Name.ToString());

于 2016-03-23T10:57:50.140 に答える