ฉันมีสิ่ง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 ระดับที่ไม่จำเป็น