99 votes

Impossible d'utiliser System.Windows.Forms

J'ai essayé de faire (mon premier) un programme C# :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello");
            Console.ReadLine();
        }
    }
}

Cela se passe bien, mais si j'essaie d'utiliser System.Windows.Forms :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello");
            System.MessageBox("hello");
            Console.ReadLine();
        }
    }
}

Voici l'erreur que je reçois :

Error   1   The type or namespace name 'Windows' does not exist in the namespace     'System' (are you missing an assembly reference?)  C:\Users\Ramy\Documents\Visual Studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs  5   14  ConsoleApplication1

Quelques détails : - J'utilise Visual Studio 2012 ; - J'ai installé le kit de développement .NET ; - Il s'agit d'une application console.

Peut-être que c'est parce que sur une application console on ne peut pas utiliser System.Windows.Forms ? Si c'est le cas, quel programme devrait l'être ? J'ai aussi essayé avec un formulaire, mais je n'affichais qu'une fenêtre et aucun code.

10 votes

Parfois, les messages d'erreur vous indiquent en fait ce qui ne va pas : il vous manque une référence d'assemblage. Comment : Ajouter ou supprimer des références dans Visual Studio

2 votes

Comme il s'agit de votre premier programme, il est préférable de recommencer et de créer une application Windows Forms. L'assistant de projet de VS2010 s'occupera de nombreuses données concernant l'utilisation des formulaires Windows.

10 votes

La première partie du commentaire de dtb est un peu déplacée. Il est évident qu'il manque une référence d'assemblage à l'auteur de la question. La question était de savoir comment résoudre ce problème car le message d'erreur ne le précise pas.

207voto

Kendall Frey Points 19670

Une application console n'ajoute pas automatiquement une référence à System.Windows.Forms.dll.

Cliquez avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions et sélectionnez Ajouter une référence..., puis recherchez System.Windows.Forms et ajoutez-le.

1 votes

OK, j'ai ce problème sur un projet existant. Je pense que le fichier du projet a été endommagé, donc j'ai créé à partir de zéro, écrasé et ajouté tous les fichiers de classe, etc. existants. Maintenant, quand je vais dans Ajouter une référence, "System.Windows" et "System.Windows.Forms" ne sont pas listés dans l'onglet ".Net" du dialogue de navigation. Avez-vous une idée ?

11 votes

@JayImerman son sous l'onglet assemblées désolé quelques années trop tard.

2 votes

La réponse était également utile pour moi (+1) mais est-il possible d'ajouter system.Windows.forms une fois pour toutes dans n'importe quel programme c# ? En utilisant votre réponse, nous avons besoin de le faire toujours à chaque nouveau programme.....

22voto

aleroot Points 30853

Vous devez ajouter la référence de l'espace de nom : System.Windows.Forms à votre projet, car pour une raison quelconque, elle n'est pas déjà ajoutée, vous pouvez donc ajouter Nouvelle Référence à partir du menu Visual Studio.

Cliquez à droite sur "Référence" ▶ "Ajouter une nouvelle référence" ▶ "System.Windows.Forms".

5 votes

Cliquez à droite sur "Référence" "Ajouter une nouvelle référence". Assemblies "System.Windows.Forms"

21voto

Fenix Points 1449

L'ajout de la référence System.Windows.Forms nécessite le type de projet .NET Framework :

J'utilisais .NET Core type de projet. Ce type de projet ne nous permet pas d'ajouter des assemblages dans ses références de projet. J'ai dû passer à Cadre .NET le type de projet avant d'ajouter System.Windows.Forms à mes références comme décrit dans Kendall Frey réponse.

Note : Il existe une référence System_Windows_Forms disponible sous l'onglet COM (pour .NET Core et .NET Framework). Ce n'est pas le bon. Il doit être System.Windows.Forms sous l'onglet Assemblages.

11voto

jorge Points 96

Pour ajouter la référence à "System.Windows.Forms", il semble que ce soit un peu différent pour Visual Studio Community 2017.

1) Allez dans l'explorateur de solutions et sélectionnez les références

enter image description here

2) Cliquez avec le bouton droit de la souris et sélectionnez Ajouter des références enter image description here

3) Dans Assemblées, cochez System.Windows.Forms et appuyez sur ok.

enter image description here

4) C'est tout.

0voto

eyesonly Points 1

Assurez-vous que l'explorateur de solutions est visible Dans MS Studio 2008, allez à la vue et cliquez sur Solution Explorer.

Dans l'explorateur de solutions, allez dans Référence Cliquez avec le bouton droit de la souris sur Référence et sélectionnez Ajouter une référence Sélectionnez l'onglet .NET Faites défiler jusqu'à ce que vous trouviez System.Drawing -> sélectionnez-le -> cliquez sur le bouton OK. Faites de même pour System.Windows.Forms

Lorsque vous exécuterez votre formulaire, ceci fonctionnera

(Eddie vit quelque part dans le temps)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X