Form
1つのメインFormMainと1つのヘルパーForm
FormHelperがある1つのアプリケーションを作成しています。
理解のために、FormMainでユーザーが注文を入力していて、FormHelperを開いていくつかの値を入力したいという例を考えてみましょう。
注文が保存されると、FormMainの値とFormHelperの値が保存されます。
私がしたことは、FormHelperをFormMainの定義のフィールドにすることでした。
public partial class FormMain : Form
{
FormHelper BillsForm;
}
そして、コンストラクターで:
public FormReceiptNew(string ReceiptNo)
{
InitializeComponent();
BillsForm = new BillsForm();//just once
}
ここで、ユーザーがFormMainに入力しているときに、FormHelperにいくつかの値を入力したいとします。ユーザーは、Alt + Hを押すと、を使用してフォームが表示さShowDialog()
れ、入力が完了すると、ユーザーはFormHelperを閉じます。同じプロセスFormHelperが必要な回数だけ発生します。
同じフォームを複数回開く必要がある理由は、ユーザーがそのフォームに特定の値を入力していて、次にFormHelperが再び表示されたとき、およびユーザーがFormMainを完全に終了したときに、値を保持したいからです。 FormMainの値は、FormHelperの値と一緒に保存されるため、ユーザーが毎回Alt + Hを押すと、次のコードは機能しません。
BillsForm= new FormHelper();
BillsForm.ShowDialog();
新しいフォームを作成しているため、古い値はすべて削除されます。