簡単なウィザードを作成しています。フォームを保持するための静的クラスを1つ作成しました。
namespace LABEL_AUTOMATION
{
static class ProjectHelper
{
public static Form1 frm1 = new Form1();
public static Form2 frm2 = new Form2();
}
}
そしてform1の次のボタンのために私は次のコードを持っています:
private void buttonNext_Click(object sender, EventArgs e)
{
this.Visible = false;
ProjectHelper.frm2.Visible = true;
}
およびform2の戻るボタンの同様のロジック:
private void buttonPrevious_Click(object sender, EventArgs e)
{
this.Visible = false;
ProjectHelper.frm1.Visible = true;
}
問題は、フォーム間を移動すると、テキストボックスなどのコントロールの値がクリアされることです。
それを修正する方法は?
また、フォームの目に見える変更イベントを使用して、ユーザーがフォームを切り替えたときにコードを実行しています。ただし、フォームが表示される前にイベントが発生します。私が使用できる他のイベントはありますか?
編集: Form1の個別のインスタンスを実際に作成して実行していたProgram.csファイルを実際に変更しませんでした。そこで、コードを次のように変更しました。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ProjectHelper.frm1.Show();
}
しかし、それは次のエラーを与えています:
The type initializer for 'LABEL_AUTOMATION.ProjectHelper' threw an exception.