У меня есть N
Число динамически добавленных PictureBoxes
в FlowLayoutPanel
. Когда я их создаю, я присоединяю к ним обработчики событий. Например:Провести одновременное событие для нескольких динамических элементов управления в C# winform
for(int i=0;i<x;i++) {
var pe= new PictureBox();
pe.MouseUp+=mouseup;
pe.MouseDown+=mouseDown;
pe.MouseMove+=mouseMove;
pe.Paint+=paint;
}
Моя цель - запустить эти события для всех ящиков с картинками всякий раз, когда я работаю с любым из них. Например, если я переместил один (1st/2nd/3rd /.../ n), все остальные будут перемещаться автоматически, если я масштабирую любую рамку, другие будут автоматически масштабироваться. Как я могу запускать события одновременно для всех графических ящиков при работе с кем-либо.
Если я стараюсь, например:
void mouseWheel(object sender, MouseEventArgs e) {
var control=(PictureBox)sender;
var parent=control.parent;
var pictureBoxes=parent.ofType<PictureBox>();
foreach(pb in pictureBoxes) {
//do something
}
}
Он работает только для окна изображения я работаю с.
Вы, вероятно, нужно вызвать метод, вместо повышения событие. Создайте некоторые методы и поместите логику на методы, а затем вызовите их, когда вам нужно. –