2010-11-22 9 views
1

J'ai commencé à apprendre vb.net en provenance d'un contexte C#. J'essayais de reprogrammer un simple programme winforms C# que j'avais, qui prenait des paramètres de ligne de commande pour déterminer ce qu'il faisait. En C#, il y a toujours une méthode principale pour accepter ces arguments. D'après ce que j'ai lu, vb.net implémente une méthode principale pour vous une fois que vous avez spécifié le formulaire de départ, sauf si vous en faites un vous-même. Ce qui est bien, mais celui que j'ai implémenté semble ignoré, j'ai mis des points de rupture pour voir si le code a même été regardé, mais rien. Le principal sous est dans la déclaration de classe du formulaire de démarrage comme ceci:VB.net Méthode principale non exécutable

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 

Il est évident que je vais mettre plus de code dans la principale méthode plus tard, mais je en ce moment tout comme pour obtenir la boîte de message à venir pour montrer que mon sous-principal est en cours d'exécution. Je fais probablement quelque chose de vraiment faux, mais d'après les exemples que j'ai vus je ne peux pas dire quoi. Des idées?

Merci, Andy.

Répondre

7

Regardez dans vos propriétés du projet:

  1. Retirez la case de "Activer cadre d'application".
  2. Dans la liste déroulante "Objet de démarrage", sélectionnez l'entrée "Sub Main".

Sub Main properties

+0

Oui, ça a marché! J'ai maintenant une boîte de message, je savais que c'était quelque chose de simple. Je suis à l'étape d'apprendre une nouvelle langue où tout me trouble, mais ça va mieux. Je vais devoir lire sur le cadre de l'application, je pense. Merci! –

+1

@Andrew: Voici un bon article à ce sujet, si vous voulez savoir ce que le framework d'application fait réellement: http://visualstudiomagazine.com/articles/2007/10/01/enable-the-application-framework-in-vb .aspx. Si vous voulez garder votre application proche de la version C#, vous ne voulez probablement pas l'utiliser. Pour une application VB pure, il a quelques fonctionnalités intéressantes. – Heinzi

+0

Je trouve ça dingue qu'aujourd'hui il n'y ait même pas un "objet de démarrage". Maintenant, c'est juste le démarrage de FORM. – sinni800

0

Je pense que le problème n'est pas que le programme ne démarre pas, c'est que messagebox.show doit être dans une interface graphique.

Essayez plutôt Msgbox ("Message").

Espérons que ça aide.

+0

J'ai commencé à mettre des points d'arrêt dans le sous-marin principal au cas où ce serait quelque chose comme ça, mais ça ne les frappait pas. Ne devrait pas besoin d'un formulaire pour montrer une boîte de message de toute façon je ne pense pas. –

1

Si vous n'êtes intéressé que par les arguments de ligne de commande alors une autre option en plus d'intercepter la méthode Main est d'utiliser Environment.GetCommandLineArgs.

+0

Je n'y ai pas pensé, mais j'en ai besoin au démarrage du programme. Et comme je copie un programme C#, je veux le garder aussi similaire que possible et utiliser le 'Principal'. –

0

Pour vous aider dans votre transition de C# vers VB.NET, ce site developer fusion convertira le code C# en VB.NET. J'espère que vous serez en mesure de voir comment les deux langues sont en corrélation.

+0

Merci pour le lien, je vais donner un coup d'oeil à ce site. –

Questions connexes