问题描述
||
我在表单中有10个复选框...而我想要的是当我右键单击一个复选框并单击contextmenu上的edit时,该复选框的文本值应该会更改。
所以我要针对的是该复选框,而我右键单击的那个复选框就占10个。
甚至不能使用sender对象,因为当我们在上下文菜单上单击Edit时,sender对象将返回\“ Edit \”。
解决方法
假设您在窗体上有多个复选框,并为每个复选框分配了一个ContextMenuStrip。您可以在contex菜单项单击处理程序中获取复选框对象,如下所示:
private void changeToolStripMenuItem_Click(object sender,EventArgs e)
{
CheckBox myCheckbox = (((sender as ToolStripDropDownItem).Owner as ContextMenuStrip).SourceControl as CheckBox);
myCheckbox.Text = DateTime.Now.ToString();
}
,(\"Edit\".Parent as ContextMenu/ContextMenuStrip).SourceControl
,附加到复选框控件上的MouseDown
事件,查看是否单击了鼠标右键(MouseButtons.Right
)并将其存储在类似currentCheckBox
的变量中,然后可以引用该变量。