मेरे पास 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 अतिरिक्त स्तरों पर नेस्टेड किया जाएगा।