c # Afficher le formulaire Windows

Donc, je me bats un peu ici. J’écris une application de console Windows en C # et je viens de créer un formulaire de connexion pour l’application appelé frmLogin. J’ai essayé d’utiliser la méthode documentée de MS;

Form f = new Form(); f.ShowDialog(); 

mais cela charge évidemment un formulaire vierge et non la forme que j’ai définie dans le concepteur de formulaire.

Dans mon application principale, je veux pouvoir afficher le formulaire de connexion par programmation, mais quand j’essaie d’utiliser;

 frmLogin.ShowDialog(); 

il me dit que “une référence d’object est requirejse pour le champ, la méthode ou la propriété non statique” System.Windows.Forms.Form.ShowDialog () ”

Auparavant, je pouvais afficher un formulaire en utilisant simplement l’extrait de code ci-dessus. Donc, évidemment, quelque chose a changé depuis la dernière fois que j’ai écrit une application de console Windows.

Est-ce que quelqu’un peut me montrer l’erreur de mes manières?

Cela crée une nouvelle instance de type Form :

 Form f = new Form(); 

Ce qui, bien sûr, est un formulaire vierge. Il semblerait que votre type s’appelle frmLogin . Normalement, cela ressemble à un nom de variable et non à un nom de classe, mais l’erreur que vous obtenez ici me dit que c’est une classe:

 frmLogin.ShowDialog(); 

Étant donné que, le moyen le plus rapide de résoudre votre problème serait de créer une instance de votre formulaire et de l’afficher:

 frmLogin login = new frmLogin(); login.ShowDialog(); 

Cependant , conformément aux normes et aux conventions de dénomination (pour éviter toute confusion ou problème futur), je recommande fortement de renommer le formulaire lui-même en quelque chose comme:

 LoginForm 

Vous pouvez alors utiliser quelque chose comme frmLogin comme nom de variable, ce qui est une approche beaucoup plus courante:

 LoginForm frmLogin = new LoginForm(); frmLogin.ShowDialog(); 

Le problème est que, avec l’extrait de code que vous avez pris de Microsoft, vous ne faisiez que construire le type de base. Vous devez créer votre formulaire. Donc, au lieu de new Form , vous construisez un new frmLogin :

 var f = new frmLogin(); f.ShowDialog(); 

Si cela ne résout pas votre problème, je supprimerai ma réponse mais, je suppose que vous n’instanciez pas votre formulaire:

 Form2 frmLogin = new Form2(); frmLogin.ShowDialog(); 

Cela fonctionne très bien pour moi. Bien que personnellement, je voudrais simplement utiliser la méthode .Show() :

 Form2 frmLogin = new Form2(); frmLogin.Show(); 

Créez l’object du FORM que vous essayez d’ouvrir par exemple “frmStudent”

Méthode 1:

 frmStudent obj = new frmStudent(); obj.Show(); 

Méthode 2:

Cela ouvrira le formulaire, mais vous ne pouvez pas passer à un autre formulaire tant que vous ne le fermez pas.

 frmStudent obj = new frmStudent(); obj.ShowDialog();