2012-03-10 22 views
46

que he intentado hacer (mi primera) un programa en C#:No se puede utilizar System.Windows.Forms

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(); 
     } 
    } 
} 

Esto va bien, pero si intento usando 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(); 
     } 
    } 
} 

Este es el error que consigo:

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 

Algunos detalles: - estoy utilizando Visual Studio 2012; - He instalado el .NET Development Kit; - Es una aplicación de consola.

Tal vez sea porque en una aplicación de consola no se puede usar System.Windows.Forms? Si es así, ¿qué programa debería ser? También lo he intentado con un formulario, pero solo estaba mostrando una ventana y sin código.

+8

A veces los mensajes de error realmente le dicen lo que está mal: le falta una referencia de ensamblado. [Cómo: Agregar o quitar referencias en Visual Studio] (http://msdn.microsoft.com/en-us/library/wkze6zky.aspx) – dtb

+2

Como este es solo su primer programa, es mejor comenzar de nuevo y crear la aplicación Windows Forms. El asistente del proyecto VS2010 se encargará de muchos datos sobre el uso de los formularios de Windows – Steve

+6

La primera parte del comentario de dtb es un poco innecesaria. Obviamente, al asker le falta una referencia de ensamblado. La pregunta era cómo solucionar ese problema, ya que el mensaje de error no aclara eso. – jmort253

Respuesta

119

Una aplicación de consola no añade automáticamente una referencia a System.Windows.Forms.dll.

Haga clic derecho en su proyecto en el Explorador de soluciones y seleccione Agregar referencia ... y luego encuentre System.Windows.Forms y añádalo.

+0

Bien, estoy teniendo este problema en un proyecto existente. Creo que el archivo del proyecto recibió una manguera, así que creé desde cero, sobrescribí y agregué todos los archivos existentes de clase, etc. Ahora, cuando voy a Agregar referencia, "System.Windows" y "System.Windows.Forms" no se enumeran en la pestaña ".Net" del cuadro de diálogo de exploración. ¿Algunas ideas? –

+1

@JayImerman está en la pestaña de ensamblajes ... lo siento unos años demasiado tarde. – DCorrigan

+0

¡una respuesta muy clara! – Ggalla1779

15

Tiene que agregar la referencia del espacio de nombres: System.Windows.Forms a su proyecto, porque por alguna razón no se ha agregado todavía, por lo que puede agregar Nueva referencia del menú de Visual Studio.

▶ Haga clic derecho sobre "referencia" "Añadir Nueva Referencia System.Windows.Forms" "" ▶

0

Asegurar el Explorador de soluciones es visible En la EM Studio 2008 Ir a ver y haga clic en el Explorador de soluciones

En Explorador de soluciones consulte Referencia clic derecho en los acabados Reference y seleccione Agregar referencia .. Seleccionar pestaña .NET de desplazamiento hacia abajo hasta encontrar System.Drawing -> seleccionarlo -> haga clic en el botón Aceptar Haga lo mismo para System.Windows.Forms

Cuando se ejecuta el formulario de esto funcionará

(Eddie Li Ves algún lugar en el tiempo)

1

sólo tiene que añadir referencia a System.Windows.Forms.dll

0

vaya al panel de proyecto paralelo, haga clic derecho sobre referencias -> Agregar referencia y encontrar System.Windows.Forms

Cada vez que ocurre un error como este (falta un espacio de nombres que agregó que obviamente existe), la solución probablemente sea esta: agregar una referencia.

Esto es necesario porque su proyecto predeterminado no incluye todo porque probablemente no lo necesitará, por lo que ahorra espacio. Una buena práctica es excluir cosas que no estás usando.

0

puede ser necesario, unreference system.windows.forms y referencia de nuevo.

Cuestiones relacionadas