2016-09-01 2 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이 될 로그인 클래스에 추가했습니다. 이 값에 대한 확인에 추가하면 문제가 해결됩니다. 이 문제에 도움을 주셔서 감사합니다.

관련 문제