Нет необходимости отключать Application Framework и писать свой собственный метод Main
. Просто обработайте событие Startup
приложения, к которому вы можете обратиться, нажав кнопку «Просмотр событий приложения» на странице «Приложения» свойств проекта. Вы можете отобразить там модальное диалоговое окно так же, как и в любом другом месте. Если вы установите e.Cancel
на True
, приложение закроется, не создавая форму запуска.
В качестве примера я просто создал новый проект WinForms и добавил вторую форму. В этой форме я добавил два Buttons
, а затем добавил этот код:
Public Class Form2
Private Sub okButton_Click(sender As Object, e As EventArgs) Handles okButton.Click
DialogResult = DialogResult.OK
End Sub
Private Sub cancelButton_Click(sender As Object, e As EventArgs) Handles cancelButton.Click
DialogResult = DialogResult.Cancel
End Sub
End Class
Затем я использовал кнопку в свойствах проекта, о которых я говорил ранее, и добавил этот код:
Imports Microsoft.VisualBasic.ApplicationServices
Namespace My
' The following events are available for MyApplication:
' Startup: Raised when the application starts, before the startup form is created.
' Shutdown: Raised after all application forms are closed. This event is not raised if the application terminates abnormally.
' UnhandledException: Raised if the application encounters an unhandled exception.
' StartupNextInstance: Raised when launching a single-instance application and the application is already active.
' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
Partial Friend Class MyApplication
Private Sub MyApplication_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
Dim dialogue As New Form2
e.Cancel = (dialogue.ShowDialog() = DialogResult.Cancel)
End Sub
End Class
End Namespace
Когда я запускал проект, сначала отображался Form2
, хотя Form1
была формой запуска. Если я нажал кнопку «ОК», то Form2
был отклонен, а Form1
открылся нормально. Если я нажал кнопку «Отмена», приложение завершилось без отображения Form1
.