vb.net - una - visual basic microsoft español
Inicie la aplicación de interfaz gráfica de usuario de VB.NET utilizando Sub Main o form startup object? (4)
¿Hay alguna razón para iniciar un programa GUI (aplicación para Windows) escrito en VB.NET en el Sub Main de un módulo en lugar de directamente en un formulario?
EDITAR: El programa no tomará ningún parámetro de línea de comandos y se ejecutará como un programa GUI siempre.
La razón principal para usar Main () en VB .NET 1.x era agregar el código que se necesitaba ejecutar antes de que se cargaran los formularios. Por ejemplo, es posible que desee detectar si ya se cargó una instancia de su aplicación Windows Forms. O tal vez desee interceptar cualquier excepción no controlada para el dominio de la aplicación:
AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf MyExceptionFilter
Pero la próxima versión de VB y Visual Studio 2005 presentó un nuevo modelo de aplicación que hizo que Main () fuera innecesario en la mayoría de los escenarios. Ahora puede interceptar el evento My.Application.Startup para agregar el código que debe ejecutarse antes de que se carguen los formularios.
Tenga en cuenta que el código para el controlador de eventos de inicio se almacena en el archivo ApplicationEvents.vb, que está oculto de manera predeterminada.
No, si siempre quieres mostrar esa forma.
Sí, si a veces desea usar su aplicación sin GUI, simplemente usando la línea de comando.
Puedes hacerlo de cualquier manera, pero en realidad solo debes mantener el código en la forma que está directamente relacionada con las operaciones y los elementos de la interfaz de usuario en ese formulario . El código de inicio de la aplicación no está relacionado con la interfaz de usuario, normalmente está relacionado con las pantallas de inicio, la verificación de la conectividad de la red, la verificación de una sola instancia, la configuración de la configuración del usuario, etc.
Después de que los elementos anteriores (o el código de inicialización apropiado para su aplicación) estén completos, Sub Main puede crear una instancia del formulario principal y luego mostrarlo para que el usuario pueda comenzar a interactuar con su aplicación.
Esto separa el código de inicio de su código de formulario. Más tarde, cuando estés manteniendo la aplicación, te alegrarás de haberlos separado.
Sí, y lo he hecho algunas veces.
Una de las razones es que si su aplicación es COM EXE (hablando ahora desde un punto de vista VB6), entonces desea poder detectar en qué contexto se llama al EXE (se inicia o se habla por alguna otra aplicación).
Por ejemplo:
Sub Main()
If App.StartMode = vbSModeAutomation Then
...
Else
...
End If
End Sub
Otro es si desea que su aplicación pueda manejar cualquier parámetro de línea de comando.
Por ejemplo:
Sub Main()
If App.PrevInstance Then End
If InStr(Command, "/s") > 0 Then
Form1.Show
ElseIf InStr(Command, "/p") > 0 Then
LoadPicture ("c:/windows/Zapotec.bmp")
End If
End Sub
(de uno de mis intentos de hacer un protector de pantalla)