2013-01-13 18 views
20

Kiedy tworzę aplikację WinForm w języku C#, typ wyjścia jest Windows Application i dostaję program.cs z static void Main() które mogę wykorzystać do obsługi parametrów wiersza polecenia, itp ...Jak znaleźć punkt wejścia main() w aplikacji WinForm VB.Net?

Jednak gdy tworzę równoważnym projekt dla VB, typ aplikacji to Windows Forms Application i jestem zmuszony wybrać formularz startowy.

Czy istnieje równoważny mechanizm do uruchomienia własnego kodu, zanim zdecyduję, który formularz będzie wyświetlany w VB.Net? Zakładam, że ten sam kod istnieje, ale jest automatycznie generowany i ukryty gdzieś? Jeśli tak, to gdzie?

+0

możliwe duplikat [Uruchom aplikację za pomocą VB.NET GUI Sub Main lub formularz startowy obiekt?] (Http://stackoverflow.com/questions/311346/start-vb-net-gui-app-using- sub-main-or-form-startup-object) – shf301

+1

Który dyskutuje, dlaczego należy to zrobić, czy nie, nie mówi jak to zrobić ... – Basic

+0

@Basic Czy udało ci się to z parametrami? Używam wzmianek o etapach odpowiedzi. Ale gdy próbowałem przekazać parametry z cmd, to nie działa. Mam mój Main jako Public Sub Main (ByVal args As String()), a następnie drukowanie każdego elementu tablicy w dla każdego ... przy użyciu Console.WriteLine ... uruchamiam aplikację z cmd, ale nie drukuje parametrów że mijam. Każda pomoc proszę – CodeEngine

Odpowiedz

36

W VB musisz ręcznie tworzyć swoje sub-główne, więc zazwyczaj tworzę nowy moduł o nazwie Program.

W ramach tej podstawowej konfiguracji należy dodać następujący kod.

Public Sub Main() 

    Application.EnableVisualStyles() 
    Application.SetCompatibleTextRenderingDefault(False) 
    Application.Run(New Form1) 

End Sub 

Gdy już to zrobisz przejdź do zakładki aplikacji ustawień projektu i odznacz „Enable Application Framework” ustawienie, a następnie z listy rozwijanej pod obiektem startowego wybierz nową procedurę Sub Main.

Następnie można umieścić dowolny kod startowy, który ma zostać uruchomiony, zanim program otworzy swój główny formularz przed linią Application.Run.

nadzieję, że pomoże

+0

Fantastyczne, właśnie tego szukałem. – Basic

1

Jeśli aplikacja ma tylko jedną formę może po prostu zacznij pisać Sub new() i Visual Studio będzie autogenerować tej metody niedopałek, który wykonuje pierwszy. Nie są wymagane zmiany ustawień projektu.

Public Sub New() 
    MyBase.New() 

    'This call is required by the Windows Form Designer. 
    InitializeComponent() 

    'Add any initialization after the InitializeComponent() call 
    '==> Put your pre-execution steps here. 
End Sub 
+2

To nie było pytanie, to jest związane z formularzem startowym, chciał, aby kod mógł być uruchamiany przed formularzem startowym. Przyjęta odpowiedź jest poprawna. –

+0

@MarkHall jest poprawny. Zauważ różnicę między 'Sub Main()' (początkowy punkt wejścia dla aplikacji) i 'Sub New()' (Konstruktor dla - w tym przypadku - formularz). Pierwszy z nich jest wykonywany przed uruchomieniem czegokolwiek innego (bez formularza, z pompą komunikatów itp.) I umożliwia obsługę argumentów wiersza poleceń, wybieranie stylów wizualnych i podobnych. – Basic

+0

Tak, nie rozpoznałem pierwotnego pytania, które dotyczyło wielu formularzy. Zmieniłem powyższą odpowiedź, aby wyjaśnić, że funkcja Sub New() zapewnia dostęp do inicjalizacji tylko wtedy, gdy aplikacja ma jedną postać. Dziękuję za twoje komentarze. – Jeff

Powiązane problemy