ボタンをクリックしてメインフォームを再開したいのですが。例えば:
に program.cs:
Application.Run(new MainForm(data))
に MainForm.cs:
private void btn1_Click(object sender, EventArgs e)
{
MainForm newForm = new MainForm(newData);
this.close();
Application.Run(newForm);
}
そのため、新しいメインウィンドウはの新しいインスタンスになりMainForm
ます。最初のインスタンスがメモリからクリアされるような方法でそれを行うにはどうすればよいですか?
編集MainForm
つまり、最初のインスタンスを完全に消したいのですが、それは単に呼び出すのと同じthis.Hide()
ですか?または、呼び出してthis.Close()
から、メインウィンドウが閉じられたときではなく、最後のウィンドウが閉じられたときにのみアプリケーションが終了するように設定しますか?
いいえ。単一のスレッドで2番目のメッセージループを開始することは、有効な操作ではありません。Form.ShowDialog
代わりに使用できます:
Hide();
MainForm newForm = new MainForm(newData);
newForm.Closed += (s, args) => Close();
newForm.ShowDialog();
または、古いインスタンスを閉じたい場合:
Hide();
MainForm newForm = new MainForm(newData);
newForm.ShowDialog();
Close();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加