PictureBox上的MouseClick事件触发相应的CheckBox

时间:2011-07-15 09:15:51

标签: c# winforms

我的C#窗口表单应用程序在运行时生成CheckBox和PictureBox的列表(成对)。我想要它,以便当我点击PictureBox(即MouseClick事件)时,选中/取消选中相应的CheckBox。我应该怎么做呢?

2 个答案:

答案 0 :(得分:1)

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

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

不要忘记查看Tag <{1}}

答案 1 :(得分:0)

如果你正在动态生成控件,我宁愿构建一个关联的字典来存储对,而不是使用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;