2016-09-01 2 views
-1

Форматирование формы для моего приложения VB.Net, которое я разрабатываю с помощью Visual Studio 2012 в Windows 7, появляется в течение очень короткого периода, а затем исчезает.VB.Net startup form немедленно завершает работу

Форма запуска У меня есть «стартовая панель», откуда пользователи могут выбирать различные параметры приложения. Я установил значение формы запуска в окне свойств приложения.

Я также использую Application Events для запуска окна для сбора учетных данных пользователя. Если учетные данные верны, тогда должна отображаться форма запуска. В противном случае пользователю будет предложено снова ввести их информацию, или они могут вообще отказаться от приложения. Вот мой код запуска; Я устанавливаю некоторые другие значения в этой логике. появляется

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 в случае, когда логика приложения закрывала окно. Добавление в проверку этого значения устранило проблему. Спасибо вам за помощь в этом вопросе!

Смежные вопросы