ContextMenuStrip
いくつかの異なるリストボックスに割り当てられているがあります。ContextMenuStrip
がクリックされたときに何ListBox
が使用されたかを把握しようとしています。以下のコードを最初に試しましたが、機能しません。sender
正しい値を持っているが、私はそれを割り当てるしようとすると、menuSubmitted
それがnullです。
private void MenuViewDetails_Click(object sender, EventArgs e)
{
ContextMenu menuSubmitted = sender as ContextMenu;
if (menuSubmitted != null)
{
Control sourceControl = menuSubmitted.SourceControl;
}
}
どんな助けでも素晴らしいでしょう。ありがとう。
以下の支援を使用して、私はそれを理解しました:
private void MenuViewDetails_Click(object sender, EventArgs e)
{
ToolStripMenuItem menuItem = sender as ToolStripMenuItem;
if (menuItem != null)
{
ContextMenuStrip calendarMenu = menuItem.Owner as ContextMenuStrip;
if (calendarMenu != null)
{
Control controlSelected = calendarMenu.SourceControl;
}
}
}
if
ステートメントをネストif (menuItem == null) return;
せず、あなたが私のようで、それを処理するコードを余分な不要な2レベルにネストしたくない場合は使用することをお勧めします。