আমার কাছে একটি রয়েছে 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
statements সমস্ত বিবৃতি নেস্টেল না করে এবংif (menuItem == null) return;
আপনি যদি আমার মতো হন এবং ব্যবহার না করেন তবে আপনার কোডটি এটির চেয়ে বেশি ব্যবহারের অযাচিত 2 স্তরের বাসা বাঁধতে চায় না।