2008-11-22 48 views

Respuesta

15

La razón principal para el uso principal() en VB .NET 1.x era para añadir código que necesario para ejecutar antes de que se carguen los formularios. Por ejemplo, es posible que desee detectar si ya se cargó una instancia de su aplicación Windows Forms. O puede que desee interceptar cualquier excepción no controlada por el dominio de aplicación:

AddHandler AppDomain.CurrentDomain.UnhandledException, AddressOf MyExceptionFilter 

Pero la próxima versión de Visual Basic y Visual Studio 2005 introducido un nuevo Application model que hizo Principal() innecesaria en la mayoría de los escenarios. Ahora puede interceptar el My.Application.Startup event 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 Startup se almacena en el archivo ApplicationEvents.vb, que está oculto de forma predeterminada.

0

No, si siempre quiere mostrar ese formulario.
Sí, si a veces desea usar su aplicación sin GUI, simplemente usando la línea de comando.

2

Sí, y lo he hecho algunas veces.

Una razón es que si su aplicación es COM EXE (hablando ahora desde un punto de vista VB6), entonces quiere ser capaz de detectar en qué contexto se llama al EXE (se inicia o se habla por algunos otra aplicación).

Por ejemplo:

Sub Main() 
    If App.StartMode = vbSModeAutomation Then 
     ... 
    Else 
     ... 
    End If 
End Sub 

Otra es si desea que su aplicación sea capaz de manejar los parámetros de línea de comandos.

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)

+0

IMHO COM EXE necesita comenzar con Sub Main() de todos modos? – Arvo

+0

Tienes razón. Acabo de comprobar qué sucede cuando optas por crear un EXE de ActiveX en VB6 y crea una clase y te deja allí para llenarlo, en lugar de llevarte a un formulario nuevo. – bugmagnet

+0

Sin embargo, un EXE COM podría ser algo con una forma o dos.Uno podría tener un EXE que muestra un área de texto que se llena desde una variedad de fuentes diferentes, pero de manera COM. – bugmagnet

4

Puede hacerlo de cualquier manera, pero en realidad solo debe conservar 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 completar los elementos anteriores (o el código de inicialización apropiado para su aplicación), 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 del código del formulario. Más tarde, cuando estés manteniendo la aplicación, te alegrarás de haberlos separado.

Cuestiones relacionadas