クラスの複数のオブジェクトを作成し、それらを1つのフォームで編集し、それらのオブジェクトを複数のフォームで使用したいとします。うまくいけば、以下のコードは問題を強調表示しようとします。C#複数のフォームで使用するためのクラスのグローバルオブジェクトの作成
私はForm1の上で、このような...
public class Player
{
public string name;
public int goals;
}
としてクラスを作成し、私はトムとダンを作成し、押されたときに彼らの目標数を増加させるボタンが追加されました。
public partial class Form1 : Form
{
Player tom = new Player()
{
name = "Tom",
goals = 5
};
Player dan = new Player()
{
name = "Dan",
goals = 7
};
public void UpdateForm()
{
label1.Text = tom.name;
label2.Text = dan.name;
}
public Form1()
{
InitializeComponent();
UpdateForm();
}
private void button1_Click(object sender, EventArgs e)
{
tom.goals += 1;
}
private void button2_Click(object sender, EventArgs e)
{
dan.goals += 1;
}
}
次に、form2に名前と新しい目標数を表示したいと考えています。私が持っている問題は、それらのオブジェクトがそのコンテキストに存在しないということです。
{
public partial class Form2 : Form
{
public void UpdateForm2()
{
label1.Text = tom.name;
label2.Text = tom.goals;
label3.Text = dan.name;
label4.Text = dan.goals;
}
public Form2()
{
InitializeComponent();
UpdateForm2();
}
}
}
これらのオブジェクトをグローバルにしてフォーム間で編集できるようにするにはどうすればよいですか?私は答えを見つけようとしましたが、このユースケースにかなり一致するものは見つかりませんでした。私は助けとアドバイスを感謝します。
'Form2'は' Form1'によって表示されます、 'Form1'コードのどこかで' Form2'のインスタンスを作成して表示していますか?フォームはどのように関連していますか?彼らは両方とも同時に表示されているか、どちらかが他の人に電話をかけているのですか、それとも独立して両方を起動している3番目のクラス/フォームがありますか? – pstrjds