私はプロジェクトの途中で、あるフォームから別のフォームにブールを渡そうとしていますが、いつでも実行できません。 1ブールをあるフォームから別のフォームに渡す(機能しない)
public bool test = false;
private void bluelineToolStripMenuItem_Click(object sender, EventArgs e)
{
this.BackgroundImage = Properties.Resources.Background_Mainframe_Blueline;
test = true;
}
形態2
private void AboutWindow_Load(object sender, EventArgs e)
{
Mainframe main = new Mainframe();
if (main.test == true) //reads test as false rather then true.
{
this.BackgroundImage = Properties.Resources.Background_About_Blueline;
}
}
フォームはそれが真としてブールを読み取るために第2のフォーム負荷である場合、それは偽として読み出します。
私はブールを間違って読んでいますか?
助けてもらえますか?
フォームがロードされたとき、それは本当でしたか?フォームがロードされた後にボタンが押された場合にのみ、テストをtrueに設定するようです。 また、それはその仕組みではありません。 Form2がForm1に含まれている場合、C#の他のオブジェクトと同様にForm1の存在を認識しません。最初のフォームからデータを取得するために2番目のフォームが本当に必要な場合は、Form2でデータを変更するForm1呼び出しメソッドをForm2に持たせることができます。 – Ares
これは、既に作成したメインフォームを参照するのではなく、変数をデフォルト値に戻す新しいメインフォームを作成するためです。新しいクラスファイルを作成し、その新しいクラスにbool変数を置き、両方の形式で使用します。 – sous2817
Aboutウィンドウが新しいメインフレームを作成するのはなぜですか?私はあなたがアクセスするオブジェクトを持っていると思っていますが、現実には、既存のMainframeのインスタンスにアクセスする必要があります。 –