2010-11-22 29 views
1

Ich habe lernen vb.net aufgenommen hat aus einem C# -Hintergrund kommen.VB.net Main-Methode Ausführen nicht

Ich habe versucht, ein einfaches C# WinForms-Programm neu zu programmieren, die ich hatte, die Kommandozeilenparameter nahmen, um zu bestimmen, was sie tat. In C# gibt es immer eine Hauptmethode, um diese Argumente zu akzeptieren.

Von dem, was ich gelesen habe, implementiert vb.net eine Hauptmethode für Sie, wenn Sie die Ausgangsform angeben, es sei denn, Sie selbst erstellen. Was gut ist, aber das, das ich implementiert habe, scheint ignoriert zu werden, ich habe Breakpoints eingefügt, um zu sehen, ob der Code überhaupt angeschaut wird, aber nichts. Der Hauptunter ist in der Klassendeklaration des Startformulars wie folgt:

Public Class FrontScreen 
    <STAThread()> _ 
    Shared Sub Main() 
     Dim mainWindow As FrontScreen = New FrontScreen() 
     MessageBox.Show("Hello! I'm exectuing!") 
     Application.Run(mainWindow) 
    End Sub 
End Class 

Offensichtlich werde ich später mehr Code im Hauptverfahren setzen, aber jetzt würde ich nur die Message-Box erhalten möchte um zu zeigen, dass mein Hauptsubs tatsächlich ausgeführt wird. Ich mache wahrscheinlich etwas wirklich Offensichtliches falsch, aber von den Beispielen, die ich gesehen habe, kann ich nicht sagen, was. Irgendwelche Ideen?

Danke, Andy.

Antwort

7

Schauen Sie in Ihre Projekteigenschaften:

  1. das Kontrollkästchen entfernen "Enable Application Framework".
  2. Wählen Sie in der Dropdown-Box "Startobjekt" den Eintrag "Sub Main".

Sub Main properties

+0

Ja, das hat funktioniert! Ich habe jetzt eine Nachrichtenbox, wusste, dass es etwas Einfaches war. Ich bin auf der Bühne und lerne eine neue Sprache, in der mich alles verwirrt, aber es wird besser. Ich werde mich über das Anwendungs-Framework informieren müssen, denke ich. Vielen Dank! –

+1

@Andrew: Hier ist ein schöner Artikel darüber, wenn Sie wissen möchten, was das Application Framework tatsächlich tut: http://visualstudiomagazine.com/articles/2007/10/01/enable-the-application-framework-in-vb .aspx. Wenn Sie Ihre Anwendung in der Nähe der C# -Version behalten möchten, möchten Sie sie wahrscheinlich nicht verwenden. Für eine reine VB-Anwendung hat es ein paar nette Features. – Heinzi

+0

Ich finde es verrückt, dass es heute nicht einmal ein "Startup-Objekt" gibt. Jetzt ist es nur Start FORM. – sinni800

0

ich glaube, das Problem ist nicht, dass das Programm nicht startet, ist es, dass messagebox.show in einer GUI sein muss.

Versuchen Msgbox ("Message") statt.

Hoffe, dass hilft.

+0

Ich fing an, Breakpoints in das Haupt-Sub zu setzen, für den Fall, dass es so etwas war, aber es traf sie nicht. Sollte kein Formular zum Anzeigen einer Message Box benötigen, denke ich nicht. –

1

Wenn Sie daran interessiert sind nur in den Kommandozeilenargumente sind dann eine weitere Option neben der Main Methode Abfangen ist Environment.GetCommandLineArgs zu verwenden.

+0

Ich habe nicht daran gedacht, aber ich brauche sie beim Programmstart. Und während ich ein C# -Programm kopiere, möchte ich es so ähnlich wie möglich halten und das "Main" verwenden. –

0

Um Ihnen bei Übergang von C# VB.NET, diese Seite zu helfen developer fusion wird C# -Code zu VB.NET konvertieren. Hoffentlich können Sie sehen, wie die beiden Sprachen zusammenhängen.

+0

Danke für den Link, ich werde dieser Seite einen Blick geben. –