[次へ]ボタンのように次のフォーム(VB.net Windowsフォーム)を開いた後、フォームを閉じるにはどうすればよいですか?
form2を表示してみForm2.show()
ましたが、form1を閉じません。入力me.close()
すると、プロジェクト全体が停止します。
表示したいだけの場合は、表示するときにForm2
非表示にし、閉じるときに再び表示できます。何が起こっているかというと、プログラムを閉じると終了し、以下の編集を参照してください。Form1
Form2
Form1
Form2
Form1
このようなもの。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim frm2 As New Form2
AddHandler frm2.FormClosed, AddressOf Form2Closing
frm2.Show()
Me.Hide()
End Sub
Private Sub Form2Closing(sender As Object, e As FormClosedEventArgs)
Me.Show()
RemoveHandler DirectCast(sender, Form2).FormClosed, AddressOf Form2Closing
End Sub
閉じたいだけForm1
で、一度Form2
開いたら戻りたくない場合は、プロジェクト設定を[スタートアップ フォームが閉じたとき] (デフォルト) から [最後のフォームが閉じたとき] に変更すると、アプリケーションを閉じずに最初のフォームを閉じることができます。 .
何を閉じるかを指定する必要があります。
Form1.Close()
別のフォームを開いた後は、別のフォームも閉じたい場合を除き、フォームを閉じないでください。そうしないと、所有権と可視性の副作用が発生し、長期的には対処したくありません。
これがまさにme.close()
、メインフォームでプロジェクトが停止する理由です。Microsoft が Winforms アプリケーションに組み込んだパラダイムを検討する必要があります。そうしないと、必ずトラブルに巻き込まれます。
代わりに、おそらく探しているのはウィザード コントロールです。