ฉันมีสิ่งContextMenuStrip
ที่กำหนดให้กับลิสต์บ็อกซ์ต่างๆ ฉันพยายามคิดว่าเมื่อไหร่ที่ContextMenuStrip
คลิกสิ่งที่ListBox
มันถูกใช้ ฉันลองใช้รหัสด้านล่างเพื่อเริ่มต้น แต่ใช้งานไม่ได้ sender
มีค่าที่ถูกต้อง แต่เมื่อฉันพยายามที่จะกำหนดให้menuSubmitted
มันเป็นโมฆะ
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 ระดับที่ไม่จำเป็น