Không thể sử dụng System.Windows.Forms


77

Tôi đã thử tạo (đầu tiên của tôi) một chương trình 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();
        }
    }
}

Điều này diễn ra tốt, nhưng nếu tôi thử sử dụng 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();
        }
    }
}

Đây là lỗi tôi nhận được:

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

Một số chi tiết: - Tôi đang sử dụng Visual Studio 2012; - Tôi đã cài đặt Bộ phát triển .NET; - Nó là một Ứng dụng Console.

Có thể là do trên một ứng dụng Console không thể sử dụng System.Windows.Forms? Nếu vậy, chương trình nên là gì? Tôi cũng đã thử với một biểu mẫu, nhưng tôi chỉ hiển thị một cửa sổ và không có mã.


9
Đôi khi thông báo lỗi thực sự cho bạn biết điều gì sai: Bạn đang thiếu một tham chiếu lắp ráp. Cách thực hiện: Thêm hoặc loại bỏ tài liệu tham khảo trong Visual Studio
dtb

2
Vì đây chỉ là chương trình đầu tiên của bạn, nên tốt hơn hết bạn nên bắt đầu lại và tạo Ứng dụng Windows Forms. VS2010 thuật sĩ dự án sẽ chăm sóc của nhiều datails liên quan đến việc sử dụng các cửa sổ hình thức
Steve

8
Phần đầu tiên của nhận xét của dtb là một chút không được gọi. Rõ ràng, người hỏi đang thiếu một tham chiếu lắp ráp. Câu hỏi là làm thế nào để khắc phục sự cố đó vì thông báo lỗi không làm rõ điều đó.
jmort253

Câu trả lời:


182

Ứng dụng bảng điều khiển không tự động thêm một tham chiếu đến System.Windows.Forms.dll.

Nhấp chuột phải vào dự án của bạn trong Solution Explorer và chọn Thêm tham chiếu ... và sau đó tìm System.Windows.Forms và thêm nó.


1
OK, tôi đang gặp sự cố này trên một dự án hiện có. Tôi nghĩ rằng tệp dự án đã bị xóa, vì vậy tôi đã tạo từ đầu, ghi đè và thêm tất cả các tệp lớp hiện có, v.v. Bây giờ, khi tôi đi tới Thêm tham chiếu, "System.Windows" và "System.Windows.Forms" không được liệt kê trong tab ".Net" của hộp thoại duyệt. Có ý kiến ​​gì không?
Jay Imerman

7
@JayImerman của nó dưới tab lắp ráp .. xin lỗi một vài năm quá muộn.
DCorrigan

2
Câu trả lời cũng hữu ích cho tôi (+1) nhưng có thể thêm system.windows.forms một lần mãi mãi trong bất kỳ chương trình c # nào không? Sử dụng câu trả lời của bạn, chúng tôi cần phải làm điều này luôn luôn tại bất kỳ chương trình mới .....
Mostafa Ayaz

21

Bạn phải thêm tham chiếu của không gian tên: System.Windows.Forms vào dự án của mình, vì vì lý do nào đó mà nó chưa được thêm, vì vậy bạn có thể thêm Tham chiếu Mới từ menu Visual Studio.

Nhấp chuột phải vào "Tham chiếu" ▶ "Thêm tài liệu tham khảo mới" ▶ "System.Windows.Forms"


1
Nhấp chuột phải vào "Tài liệu tham khảo" ▶ "Thêm tài liệu tham khảo mới" ▶ Assemblies▶ "System.Windows.Forms"
Steve Smith

7

Để thêm tham chiếu vào "System.Windows.Forms", nó có vẻ hơi khác đối với Visual Studio Community 2017.

1) Đi tới trình khám phá giải pháp và chọn tài liệu tham khảo

nhập mô tả hình ảnh ở đây

2) Nhấp chuột phải và chọn Thêm tài liệu tham khảo nhập mô tả hình ảnh ở đây

3) Trong Assemblies, kiểm tra System.Windows.Forms và nhấn ok

nhập mô tả hình ảnh ở đây

4) Đó là nó.


4

Thêm tham chiếu System.Windows.Forms yêu cầu loại dự án .NET Framework:

Tôi đang sử dụng kiểu dự án .NET Core . Loại dự án này không cho phép chúng tôi thêm các tập hợp vào các tham chiếu dự án của nó. Tôi phải chuyển sang kiểu dự án .NET Framework trước khi thêm System.Windows.Formsassembly vào các tham chiếu của mình như được mô tả trong câu trả lời Kendall Frey .

Lưu ý: Có System_Windows_Formssẵn tài liệu tham khảo trong tab COM (cho cả .NET Core và .NET Framework). Nó không phải là một trong những quyền. Nó phải System.Windows.Formsnằm trong tab Assemblies.


0

Đảm bảo giải pháp Explorer hiển thị Trong MS Studio 2008 Đi tới xem và nhấp vào Trình khám phá giải pháp

Trong trình thám hiểm Giải pháp, đi tới Tham khảo Nhấp chuột phải vào Tham chiếu và chọn Thêm Tham chiếu .. Chọn tab .NET Cuộn xuống cho đến khi bạn tìm thấy System.Drawing -> chọn nó -> nhấp vào nút OK Làm tương tự với System.Windows.Forms

Khi bạn chạy biểu mẫu của mình, nó sẽ hoạt động

(eddie sống ở đâu đó trong thời gian)



0

đi tới bảng điều khiển dự án bên, nhấp chuột phải vào tài liệu tham khảo -> thêm tài liệu tham khảo và tìm System.Windows.Forms

Bất cứ lúc nào một số lỗi như thế này xảy ra (một số không gian tên bạn đã thêm bị thiếu mà rõ ràng là ở đó), giải pháp có thể là điều này - thêm một tham chiếu.

Điều này là cần thiết vì dự án mặc định của bạn không bao gồm mọi thứ vì có thể bạn sẽ không cần nó để tiết kiệm dung lượng. Một phương pháp hay là loại trừ những thứ bạn không sử dụng.


0

có thể là necesssary, không can thiệp system.windows.forms và tham chiếu lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.