2016-09-01 8 views
-1

Windows 7上でVisual Studio 2012を使用して開発しているVB.Netアプリケーションのスタートアップフォームが非常に短時間表示されてから消えます。VB.Netスタートアップフォームが直ちに終了します

私が持っている起動フォームは、ユーザーがさまざまなアプリケーションオプションを選択できる「起動パッド」です。私はアプリケーションのプロパティウィンドウでスタートアップフォームの値を設定しました。

また、アプリケーションイベントを使用してユーザー資格情報を収集するウィンドウを起動しています。資格情報が正しい場合は、スタートアップフォームが表示されます。そうしないと、ユーザーは情報を再度入力するか、アプリケーションを完全に終了することができます。ここに私のスタートアップコードです。私はこのロジック内にいくつかの他の値を設定しています。

Private Sub MyApplication_Startup(sender As Object, e As ApplicationServices.StartupEventArgs) Handles Me.Startup 

     Dim sysLogon As New SYSLogon 
     sysLogon.ShowDialog() 
     _currentUser = sysLogon.UserData 
     _currentAlias = _currentUser 
     _systemData = New StaticData() 

    End Sub 

有効な資格情報を入力すると、ログインウィンドウが表示されますが、起動フォームのクイックフラッシュが表示され、アプリケーションが終了します。私はtry/catchブロックでスタートアップとフォームロードコードの両方をラップしていますが、私は普通のものを発見していません。

私はビルドをきれいにし、pdbファイルを削除して再ビルドして、デバッグビルドとリリースビルドの両方を試しました。この問題を解決できる他の設定がありますか?私はスタートアップフォームやアプリケーションイベントファイルを最近変更していません。これらは以前は動作していましたが、唯一の違いはこのプロジェクトから数週間はずしたことです。

次はすぐにログインに成功した後に呼ばれているものです。

Private Sub LaunchPad_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Me.CenterToScreen() 
End Sub 
+0

正しいログイン後に実行されているコードは何ですか? – theBugger

+0

私はこの情報を投稿の最後に追加しました。 – Timbuck

+0

それにはプロパティがあります:StartPosition。 _systemDataの形式はどこに "表示"しますか?あなたのコードは、正しくログインしていない人はまだそのフォームに入ることができるようです。 – LarsTech

答えて

0

まあ、これは恥ずかしいです!ユーザーが正常にログインすると、ログインウィンドウを閉じるための呼び出しがありました。 FormClosingサブルーチンを使用して、ウィンドウが閉じていた理由を確認しました。 e.CloseReason = CloseReason.UserClosingの場合、私はApplication.Exit()と呼んでいます。明らかに、ユーザーの理由とアプリケーションが常に終了するようにMe.Close()を設定してください。この問題を解決するために、ローカル変数_userClosedAppを、アプリケーション・ロジックがウィンドウを閉じる場合のfalseになるログイン・クラスに追加しました。この値のチェックに追加すると、問題が修正されました。 この問題についてご支援いただきましてありがとうございます。