2 つのフォームがあり、次を使用して 2 番目のフォームを作成します。
Form2 f2 = new Form2();
f2.Show();
Form2
public であり、すべての mousemove を変更する変数があります。そのフォームにボタンがあり、押すと変数が保存されます。問題は、それを に戻す方法がわからないことForm1
です。
イベントを使用する必要があります。 Form2
適切にトリガーされるイベントを定義する必要があります(ボタンがクリックされたときに発生するように聞こえます)。 Form1
その後、そのイベントにサブスクライブして、何でもできます。
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public event Action<string> MyEvent; //TODO give better name and set arguments for the Action
private void button1_Click(object sender, EventArgs e)
{
string someValue = "Hello World!"; //TODO get value that you want to share
if (MyEvent != null)
{
MyEvent(someValue);
}
}
}
そして、あなたのメインフォームで:
private void button1_Click(object sender, EventArgs e)
{
Form2 otherForm = new Form2();
//subscribe to the event. You could use a real method here, rather than an anonymous one, but I prefer doing it this way.
otherForm.MyEvent += value =>
{
//do other stuff with "value".
label1.Text = value;
};
otherForm.Show();
}