点击图片框上的鼠标事件触发相应的复选框

本文关键字:复选框 事件 鼠标 | 更新日期: 2023-09-27 18:02:24

我的c#窗口窗体应用程序在运行时生成CheckBox和PictureBox(成对)的列表。我想让它,当我点击PictureBox(即MouseClick事件),相应的CheckBox被选中/未选中。我该怎么做呢?

点击图片框上的鼠标事件触发相应的复选框

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

((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;