通过实现上下文菜单 c# winforms 重命名复选框
本文关键字:winforms 重命名 复选框 菜单 实现 上下文 | 更新日期: 2023-09-27 18:34:17
我在面板上设置了一组动态创建的复选框,并且还在所有复选框上实现了ContextMenuStrip。我无法检测到哪个控件当前显示上下文菜单条中定义的快捷菜单。
我已经得到了答案。
private void MenuViewDetails_Click(object sender, EventArgs e)
{
// Try to cast the sender to a MenuItem
MenuItem menuItem = sender as MenuItem;
if (menuItem != null)
{
// Retrieve the ContextMenu that contains this MenuItem
ContextMenu menu = menuItem.GetContextMenu();
// Get the control that is displaying this context menu
Control sourceControl = menu.SourceControl;
}
}
使用 SourceControl() 属性。
使用上下文菜单:
private void menuItem1_Click(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)contextMenu1.SourceControl;
Console.WriteLine(cb.Name);
}
使用上下文菜单条:
private void renameToolStripMenuItem_Click(object sender, EventArgs e)
{
CheckBox cb = (CheckBox)contextMenuStrip1.SourceControl;
Console.WriteLine(cb.Name);
}