web-dev-qa-db-ja.com

VBで新しいフォームを開き、古いフォームを閉じる方法

アプリケーションが読み込まれると歓迎されますが、続行ボタンが押されたときにそのフォームを閉じてログインフォームを開く必要があります。

私のコード:

    Me.Close()
    Dim Login As New Form
    Login.Show()

ボタンをクリックすると、ウェルカムフォームが閉じられ、アプリケーションが終了します。ありがとうございます! :)

14
BaeFell

プロジェクトのプロパティを設定して、シャットダウンモードのドロップダウンで[最後のフォームが閉じたとき]を選択できます。

更新:-

「プロジェクト」メニュー->「YourApp」のプロパティ...->アプリケーションタブ

find:「シャットダウンモード」

から変更する

「スタートアップフォームが閉じるとき」->「最後のフォームが閉じるとき」

20
Rahul Tripathi

閉じる前にフォームを表示します。

Dim Login As New Form
Login.Show()
Me.Close()
8
Markjw2

Me.Hide()を使用する方が良い

4
Zigab123

シャットダウンモード プロジェクトプロパティがあります。これにより、アプリケーションのライフサイクルが制御されます。

必ず「最後のフォームが閉じたとき」に設定してください

その後、コードは期待どおりに動作するはずです。

何が起こっているのかというと、その設定がシャットダウン "スタートアップフォームが閉じたとき"に設定されているので、Me.Closeスタートアップフォームでは、これはアプリケーションをシャットダウンします。この行の後のすべてのコードは事実上無視されます。

3
Matt Wilko

ようこそフォームがメインフォームでない場合は、Login.Show()の後にMe.Closeを追加するだけです

Dim Login As New Form
Login.Show()
Me.Close()
1
Alex

これを試して..

終了時のウェルカムフォーム:

Me.hide()
Dim Login As New Form
Login.Show()

読み込みイベント中のログインフォームで:

Private Sub Login_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    WelcomeForm.Close()

End Sub

これにより、最初のフォームが非表示になり、2番目のフォームが読み込まれます。そして、2番目のフォームが完全にロードされると、最初のフォームを閉じようとします。

[プロジェクト]プロパティの[アプリケーション]タブで、オプションが[最後のフォームが閉じたとき]に設定されていることを確認します。

0
BullfrogIIII

アプリケーションからサブメインフォームを閉じると、アプリケーションが閉じます。ただし、他のフォームがサブメインフォームでない場合は、他のフォームを閉じて開くことができます。代わりに非表示にすることもできます。

0
Daniel