Событие MouseClick на PictureBox вызывает соответствующий CheckBox - PullRequest
3 голосов
/ 15 июля 2011

Приложение My C # формирует окно во время выполнения списка CheckBox и PictureBox (в паре).Я хочу, чтобы, когда я нажимал на PictureBox (то есть событие MouseClick), соответствующий CheckBox отмечался / не отмечался.Как мне поступить об этом?

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Я бы предпочел хранить указатель для соответствующего флажка в Tag свойстве PictureBox.После этого вы можете использовать его в обработчике событий кликов PictureBox:

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

Не забудьте проверить Tag для null

0 голосов
/ 15 июля 2011

Если вы генерируете элементы управления на лету, я бы предпочел создать соответствующий словарь для хранения пар, а не использовать тег.

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...