イベントを使用してみてください。
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クラスを作成することができます
フォームに同じ基本クラスがない場合は、ロジックを静的メソッドに入れて、すべての子を循環させることができますか? –
fistには、すべてのダイアログまたは子ウィンドウの基本クラスがあり、2番目に静的メソッドを配置すると、他のすべてのウィンドウでimage(親ウィンドウ上を移動する)のようなすべてのコントロールを配置する必要があります。 – Abhishek