Попробуйте использовать события.
Создать событие для родительской формы с именем ImageMoved
.
Дочерние формы должны подписаться на это событие, и когда вы перемещаете изображение, вы вызываете событие, и тогда дочерние формы будут знать, что они делают.
Множество разных способов сделать это. Простой пример:
public partial class Form1 : Form {
public event EventHandler ImageMoved;
private void OnImageMoved() {
if (ImageMoved != null)
ImageMoved(this, new EventArgs());
}
private void button1_Click(object sender, EventArgs e) {
OnImageMoved();
}
private void button2_Click(object sender, EventArgs e) {
Form2 f2 = new Form2(this);
f2.Show();
}
}
Тогда ваши дочерние формы могут выглядеть примерно так:
public partial class Form2 : Form {
public Form2(Form1 parentForm) {
InitializeComponent();
parentForm.ImageMoved += new EventHandler(parentForm_ImageMoved);
}
void parentForm_ImageMoved(object sender, EventArgs e) {
MessageBox.Show("Image moved");
}
}
Вы также можете создать свой собственный класс EventArgs, если хотите передать больше информации, например, какое изображение и т. Д.