Не вдається використовувати System.Windows.Forms


77

Я спробував створити (свою першу) програму на 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 Development Kit; - Це консольний додаток.

Можливо, це тому, що в консольній програмі не можна використовувати System.Windows.Forms? Якщо так, якою має бути програма? Я також пробував із формою, але я показував лише вікно, а коду не було.


9
Іноді повідомлення про помилки насправді повідомляють вам, що сталося: вам бракує посилань на збірку. Як: Додавання та видалення посилань у Visual Studio
dtb

2
Оскільки це лише ваша перша програма, краще почати знову і створити програму Windows Forms. Майстер проекту VS2010 подбає про багато даних щодо використання віконних форм
Стів

8
Першу частину коментаря dtb трохи не викликають. Очевидно, що автор запиту відсутній посилання на збірку. Питання полягало в тому, як вирішити цю проблему, оскільки повідомлення про помилку цього не пояснює.
jmort253

Відповіді:


182

Консольний додаток не додає автоматично посилання на System.Windows.Forms.dll.

Клацніть правою кнопкою миші ваш проект у Провіднику рішень і виберіть Додати посилання ..., а потім знайдіть System.Windows.Forms і додайте його.


1
Добре, у мене проблема з існуючим проектом. Я думаю, що файл проекту був змінений, тому я створив його з нуля, переписав та додав усі існуючі файли класів тощо. Тепер, коли я переходжу до пункту Додати посилання, "System.Windows" та "System.Windows.Forms" не відображаються на вкладці ".Net" у діалоговому вікні перегляду. Будь-які ідеї?
Джей Імерман,

7
@JayImerman його на вкладці зборів .. вибачте на кілька років запізно.
DCorrigan

2
Відповідь також була для мене корисною (+1), але чи можна додати system.windows.forms раз назавжди в будь-яку програму c #? Використовуючи вашу відповідь, нам потрібно робити це завжди в будь-якій новій програмі ...
Мостафа Аяз,

21

Вам потрібно додати посилання на простір імен: System.Windows.Forms до вашого проекту, оскільки з якихось причин він ще не доданий, тому ви можете додати нове посилання з меню Visual Studio.

Клацніть правою кнопкою миші на "Reference" ▶ "Add New Reference" ▶ "System.Windows.Forms"


1
Клацніть правою кнопкою миші на "Reference" ▶ "Add New Reference" ▶ Assemblies▶ "System.Windows.Forms"
Стів Сміт

7

Щоб додати посилання на "System.Windows.Forms", здається, це трохи інше для Visual Studio Community 2017.

1) Перейдіть до Explorer Explorer і виберіть посилання

введіть тут опис зображення

2) Клацніть правою кнопкою миші та виберіть Додати посилання введіть тут опис зображення

3) У Асамблеях перевірте System.Windows.Forms та натисніть OK

введіть тут опис зображення

4) Ось і все.


4

Додавання посилання System.Windows.Forms вимагає типу проекту .NET Framework:

Я використовував тип проекту .NET Core . Цей тип проекту не дозволяє нам додавати збірки в його посилання на проекти. Мені довелося перейти до типу проекту .NET Framework, перш ніж додавати System.Windows.Formsзбірку до своїх посилань, як описано у відповіді Кендалла Фрея .

Примітка. На System_Windows_Formsвкладці COM є посилання (як для .NET Core, так і для .NET Framework). Це не правильно. Це має бути System.Windows.Formsна вкладці Асамблеї.


0

Переконайтеся, що Провідник рішень видно у MS Studio 2008 Перейдіть до перегляду та клацніть Провідник рішень

У Провіднику рішень перейдіть до посилання Клацніть правою кнопкою миші на посиланні та виберіть Додати посилання. Виберіть вкладку .NET Прокрутіть вниз, поки не знайдете System.Drawing -> виберіть його -> натисніть кнопку OK Зробіть те саме для System.Windows.Forms

Коли ви запускаєте форму, це спрацює

(Едді живе десь у часі)



0

перейдіть на бічну панель проекту, клацніть правою кнопкою миші на посиланнях -> додати посилання та знайдіть System.Windows.Forms

Кожного разу, коли виникає така помилка (як-небудь доданий простір імен, який, очевидно, відсутній), рішення, мабуть, полягає в цьому - додаванні посилання.

Це потрібно, оскільки ваш проект за замовчуванням не включає в себе все, оскільки вам це, мабуть, не потрібно, щоб це заощадило місце. Хороша практика - виключати речі, якими ви не користуєтесь.


0

може бути необхідним, посилання system.windows.forms та посилання ще раз.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.