Lorsque vous appuyez sur F5 pour compiler un projet, il n'y a pas d'erreur ou d'avertissement, mais le formulaire n'apparaîtra pas. Quoi de neuf?VS 2010 Ultimate VB.NET Le formulaire de projet ne se compilera pas/n'apparaîtra pas
Répondre
Dans le menu VS2010, allez dans Construire -> Gestionnaire de configuration, votre projet a-t-il activé la case à cocher dans la colonne "Construire"? Si le projet est mis à niveau à partir d'une ancienne version de Visual Studio, il se peut qu'il ne cible pas .NET Framework 4.0. Dans ce cas, vous devez le modifier comme expliqué here.
Oui, c'est activé. Ajout du lien du code source par requête ci-dessus dans les commentaires. – Liadc
Pour analyser le problème, appuyez sur F8 (ou F10, selon vos paramètres de clavier par défaut) pour entrer dans le code au lieu d'exécuter l'application. Cela devrait vous conduire à la méthode principale où le formulaire principal serait initialisé.
Ce sont les points saillants dans la ligne rouge 11 dans la forme principale. Je n'ai aucune idée pourquoi ce serait le problème. Le lien source est donné ci-dessus. – Liadc
@Liadc: Que signifie exactement * sur * la ligne 11? Selon mon compte, c'est une ligne vide. –
Chaque fois que vous essayez d'exécuter votre code, il commence par créer une instance de frmMain
, votre formulaire par défaut et celui affiché au démarrage de l'application.
Lorsque ce formulaire est créé, il instancie automatiquement une instance de Form3
parce que vous instancier une variable de ce type appelé modifyForm
en haut du fichier de code de ce formulaire:
Dim modifyForm As New Form3 'modify student
Le problème est que, lorsque le exécution va instancier un objet de type Form3
, il est appelé retour à l'endroit où il était à cause de cette déclaration en haut du fichier de code Form3
:
Dim frmMain As New frmMain
Rincer, faire mousser et répéter. Votre code se transforme en une boucle infinie, en essayant d'instancier une instance de frmMain
, qui essaie d'instancier une instance de Form3
, qui essaie d'instancier une instance de frmMain
, ad nauseum. Finalement, cela débordera votre mémoire disponible et provoquera un StackOverflowException
.
Il est important de noter que tout cela se produit avant que l'instance par défaut de frmMain
est même montré, parce que ces variables sont déclarées en dehors de toutes les méthodes dans votre code. Parce que l'ordinateur ne peut jamais échapper à cette boucle infinie, il n'a jamais une chance de se déplacer et d'afficher réellement votre formulaire.
Et le moment où vous avez tous lu patiemment pour: Fix en supprimant la déclaration de frmMain
en haut du fichier de code Form3
. Je ne sais pas ce que c'est là, de toute façon.
EDIT: Si tout va bien, je peux éclaircir un peu de confusion en ce qui concerne les valeurs de passage entre les formes. Après une étude plus approfondie de votre code, mon instinct me dit que la meilleure solution pour vous est de surcharger le constructeur pour Form3
pour accepter le formulaire appelant (l'instance existante instance de frmMain
) comme argument. Cela vous permettra d'accéder à tous les membres du public de frmMain
de au sein de votre classe Form3
.
Voici une esquisse de la façon dont vous pourriez faire dans votre code:
Public Class frmMain
''#The private data field that stores the shared data
Private _mySharedData As String = "This is the data I want to share across forms."
''#A public property to expose your shared data
''#that can be accessed by your Form3 object
Public Property MySharedData As String
Get
Return _mySharedData
End Get
Set(ByVal value As String)
_mySharedData = value
End Set
End Property
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
''#Do all of your other stuff here...
''#Create a new instance of Form3, specifying this form as its caller
Dim otherForm As New Form3(Me)
''#Show the new instance of Form3
otherForm.Show()
End Sub
End Class
Public Class Form3
''#The private field that holds the reference to the main form
''#that you want to be able to access data from
Private myMainForm As frmMain
Public Sub New(ByVal callingForm As frmMain)
InitializeComponent()
''#Save the reference to the calling form so you can use it later
myMainForm = callingForm
End Sub
Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
''#Access anything that you need from the main form
MessageBox.Show(myMainForm.MySharedData)
End Sub
End Class
Comme vous pouvez le voir, frmMain
expose une propriété publique (soutenu par une variable privée nommée de façon correspondante) appelée MySharedData
. Cela peut être absolument n'importe quel vous voulez, et vous pouvez avoir autant de ceux-ci que vous le souhaitez.
Notez également que le constructeur (la méthode New
) pour Form3
accepte une instance de frmMain
en tant qu'argument. Chaque fois que vous créez un nouvel objet Form3
à partir de frmMain
, il vous suffit de spécifier Me
, ce qui indique que vous voulez passer l'instance actuelle de frmMain
. Dans la méthode constructeur, Form3
stocke la référence à sa forme d'appel et vous pouvez utiliser cette référence à tout moment dans le code Form3
pour accéder aux propriétés publiques exposées par frmMain
.
- 1. Le programme ne compilera pas
- 2. Molette de défilement de la souris verticale ne fonctionnant pas dans VS 2010 Ultimate
- 3. L'expression lambda ne compilera pas
- 4. Mise à niveau VS 2010 Ultimate - Projet de modélisation - Layer Diagram fige Visual Studio
- 5. VB.net formulaire de restauration ne pas afficher le formulaire
- 6. self.clearsSelectionOnViewWillAppear ne compilera pas
- 7. ajouter ShareKit à mon projet, ne compilera pas - 4,448 erreurs
- 8. L'initialisateur d'objet dynamique C# ne se compilera pas
- 9. Vs 2010 Le projet Sql DB échoue en x64
- 10. Pourquoi ce code générique ne se compilera-t-il pas?
- 11. VB.NET Me.Close() ne fonctionne pas, le formulaire ne se ferme pas?
- 12. .NET - Le projet ne se construit pas
- 13. tfs 2010 sur vista ultimate
- 14. Comment utiliser Visual Studio 2010 Ultimate avec Codeplex?
- 15. VS 2010 Javascript IntelliSense ne fonctionne pas
- 16. Word 2010 Addin ne se charge pas, VSTO 2010
- 17. VS 2010 beta 2: Le projet ASP.NET MVC2 ne peut pas ajouter des zones
- 18. Javascript Intellisense ne fonctionne pas sur Visual Studio 2010 Ultimate (Windows 7 x64)
- 19. Désactiver VB.NET 10 fonctionnalités dans VS 2010
- 20. Qt ne compilera pas (10.5 Intel Mac)
- 21. L'application VB.NET ne se ferme pas complètement
- 22. Java générique joker imbriqué ne compilera pas
- 23. Impossible de se connecter au projet dans TFS 2010
- 24. Pourquoi cela ne compilera pas en F #
- 25. Rhino.Commons et il ne compilera pas
- 26. Comment configurer TFS 2010 dans Visual Studio 2010 Premium/Ultimate?
- 27. La conversion de C# en VB.net ne compilera pas <param name = "x"
- 28. travail avec VS 2010 sur un projet pour VS 2005
- 29. Comment résoudre les erreurs de construction en utilisant VS 2010 Ultimate sur 32bit XP Sp3
- 30. Le projet de téléphone portable n'ouvre pas Visual Studio 2010?
Le code serait bien. – birryree
Voici la source: http://www.mediafire.com/?5dpxo8otess2bmd Le problème est survenu après l'implémentation de la troisième forme, frmModifyStudent. Ce n'est pas encore terminé, c'est juste une partie copiée de la source d'autres parties du programme. – Liadc