C# PictureBox上的鼠标单击事件触发相应复选框

C# PictureBox上的鼠标单击事件触发相应复选框,c#,winforms,C#,Winforms,我的C#窗口窗体应用程序在运行时生成复选框和图片框(成对)的列表。我希望这样,当我单击PictureBox(即鼠标单击事件)时,相应的复选框被选中/取消选中。我应该怎么做呢?我更愿意将对应复选框的指针存储在PictureBox的标记属性中。之后,您可以在PictureBox click事件处理程序中使用它: ((sender as PictureBox).Tag as CheckBox).Checked = !((sender as PictureBox).Tag as CheckBox);

我的C#窗口窗体应用程序在运行时生成复选框和图片框(成对)的列表。我希望这样,当我单击PictureBox(即鼠标单击事件)时,相应的复选框被选中/取消选中。我应该怎么做呢?

我更愿意将对应复选框的指针存储在
PictureBox
标记
属性中。之后,您可以在PictureBox click事件处理程序中使用它:

((sender as PictureBox).Tag as CheckBox).Checked = !((sender as PictureBox).Tag as CheckBox);

不要忘记检查
Tag
中的
null

如果您正在动态生成控件,我宁愿构建一个关联的字典来存储这些对,而不是使用Tag

Dictionary<PictureBox, CheckBox> association = new Dictionary<PictureBox, CheckBox>();

// ---------------------------------------
// then, in your generation code

PictureBox pb = // init
CheckBox cb = // init

// whatever

association.Add(pb, cb);

// ---------------------------------------    
// then, in your click handler for picturebox

PictureBox pb = (PictureBox)sender;
CheckBox cb = association[pb];

cb.Checked = !cb.Checked;
字典关联=新建字典();
// ---------------------------------------
//然后,在生成代码中
PictureBox pb=//初始化
复选框cb=//init
//随便
添加(pb、cb);
// ---------------------------------------    
//然后,在picturebox的单击处理程序中
PictureBox pb=(PictureBox)发送方;
复选框cb=关联[pb];
cb.Checked=!cb.检查;