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レベルにネストしたくない場合は使用することをお勧めします。