无法使用System.Windows.Forms


76

我尝试过(第一个)制作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();
        }
    }
}

这很好,但是如果我尝试使用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();
        }
    }
}

这是我得到的错误:

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

一些细节:-我正在使用Visual Studio 2012;-我已经安装了.NET开发套件;-这是一个控制台应用程序。

也许是因为在控制台应用程序上无法使用System.Windows.Forms?如果是这样,应该使用什么程序?我也尝试过使用表单,但是我只显示一个窗口,没有任何代码。


9
有时,错误消息实际上告诉您出了什么问题:您缺少程序集引用。如何:在Visual Studio中添加或删除引用
dtb 2012年

2
因为这只是您的第一个程序,所以最好重新启动并创建Windows Forms Application。VS2010项目向导将处理有关Windows窗体使用的许多数据问题
Steve

8
dtb评论的第一部分是没有必要的。显然,询问者缺少装配参考。问题是如何解决该问题,因为错误消息并未对此进行澄清。
jmort253

Answers:


179

控制台应用程序不会自动添加对System.Windows.Forms.dll的引用。

在解决方案资源管理器中右键单击您的项目,然后选择“添加引用...”,然后找到System.Windows.Forms并将其添加。


1
好的,我在现有项目中遇到了这个问题。我认为项目文件已完成,因此我从头开始创建,改写并添加了所有现有的类等文件。现在,当我转到“添加引用”时,“浏览”对话框的“ .Net”选项卡中未列出“ System.Windows”和“ System.Windows.Forms”。有任何想法吗?
杰伊·伊曼

7
@JayImerman它的下程序集选项卡..抱歉,为时已晚。
DCorrigan '16

2
答案对我也有用(+1),但是是否可以在任何C#程序中永久添加system.windows.forms?使用您的回答,我们需要始终在任何新程序中进行此操作.....
Mostafa Ayaz '18

21

您必须将名称空间的引用:System.Windows.Forms添加到您的项目中,因为由于某种原因它尚未添加,因此可以从Visual Studio菜单添加“新建引用”。

右键单击“参考”▶“添加新参考”▶“ System.Windows.Forms”


1
右键单击“参考”▶“添加新参考” Assemblies▶▶“ System.Windows.Forms”
史蒂夫·史密斯

7

若要添加对“ System.Windows.Forms”的引用,Visual Studio Community 2017似乎有所不同。

1)前往解决方案资源管理器并选择参考

在此处输入图片说明

2)右键单击并选择添加引用 在此处输入图片说明

3)在程序集中,检查System.Windows.Forms并按OK

在此处输入图片说明

4)就这样。


4

添加System.Windows.Forms参考需要.NET Framework项目类型:

我正在使用.NET Core项目类型。此项目类型不允许我们将程序集添加到其项目引用中。如Kendall Frey答案所述,在将程序集添加到我的引用之前,我不得不移至.NET Framework项目类型。System.Windows.Forms

注意:System_Windows_Forms“ COM”选项卡下有可用的参考(适用于.NET Core和.NET Framework)。这不是正确的。它必须System.Windows.Forms在“程序集”选项卡下。


0

确保在MS Studio 2008中可见解决方案资源管理器以查看并单击解决方案资源管理器

在解决方案资源管理器中,转到“引用”。右键单击“引用”,然后选择“添加引用”。选择“ .NET”选项卡向下滚动,直到找到System.Drawing->选择它->单击“确定”按钮对System.Windows.Forms执行相同的操作

当您运行表格时,它将起作用

(埃迪及时地住在某个地方)



0

转到侧面项目面板,右键单击引用->添加引用并找到System.Windows.Forms

每当出现这样的错误(显然缺少您添加的某些名称空间)时,解决方案可能就是这样-添加引用。

这是必需的,因为您的默认项目不会包含所有内容,因为您可能不需要它,因此可以节省空间。一个好的做法是排除不使用的东西。


0

可能是必要的,请取消引用system.windows.forms并再次引用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.