COM->System.Windows.Forms
это не COM
.net Core, Visual Studio 2019, создаю проект в консоли(так ведь можно)
можно, но только когда вы знаете что делать дальше. а сейчас очевидно что не знаете:
— в .net Core формы поддерживатся с версии самой корки 3.*
— .net Core 3.* поддерживается начиная с Visual Studio 2019 (и то начиная со свежих билдов, осенних)
— визуального редактора форм на данный момент не существует
— есть руководство https://docs.microsoft.com/ru-ru/dotnet/core/porti… (что подключать там тоже написано)
совет — если вы только начинаете изучать программирование, не готовы осваивать XAML и нуждаете в визуальном редакторе форм, практикуйтесь сначала в .Net Framework, и используйте шаблон проекта WinForms
microsoft visual studio 2022
Проект Библиотека классов .NET 7
пкм по проекту (или зависимости) выбираем: Добавить => Ссылка на проект => Кликаем обзор =>
Отрывается окно => Переходим по структуре файлов вверх до папки «2022» =>
В поле поиска вставляем «System.Windows.Forms» => В результате ищем нужное (Примерно 3 снизу) =>
Выбираем => Тыкаем Добавить.
В свойствах проекта добавляем поддержку Windows Worms (если WPF).
Готово!
C:\Program Files\Microsoft Visual Studio\2022\Community\dotnet\runtime\shared\Microsoft.WindowsDesktop.App\6.0.14\System.Windows.Forms.dll
Вам нужно добавить ссылку на зависимость в свойствах проекта в обозревателе решений. Конечно, если проект не выполняется на .NET Core, в таком случае вам нужно подключить соответсвующее расширение с помощбю менеджера пакетов Nuget для проекта
Распределенное обучение с TensorFlow и Python
AI_Generated 05.05.2025
В машинном обучении размер имеет значение. С ростом сложности моделей и объема данных одиночный процессор или даже мощная видеокарта уже не справляются с задачей обучения за разумное время. Когда. . .
CRUD API на C# и GraphQL
stackOverflow 05.05.2025
В бэкенд-разработке постоянно возникают новые технологии, призванные решить актуальные проблемы и упростить жизнь программистам. Одной из таких технологий стал GraphQL — язык запросов для API,. . .
Распознавание голоса и речи на C#
UnmanagedCoder 05.05.2025
Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .
Реализация своих итераторов в C++
NullReferenced 05.05.2025
Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .
Разработка собственного фреймворка для тестирования в C#
UnmanagedCoder 04.05.2025
C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .
Распределенная трассировка в Java с помощью OpenTelemetry
Javaican 04.05.2025
Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .
Шаблоны обнаружения сервисов в Kubernetes
Mr. Docker 04.05.2025
Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .
Создаем SPA на C# и Blazor
stackOverflow 04.05.2025
Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .
Реализация шаблонов проектирования GoF на C++
NullReferenced 04.05.2025
«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .
C# и сети: Сокеты, gRPC и SignalR
UnmanagedCoder 04.05.2025
Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .
When developing C# applications that involve GUI components, you may encounter the error message «System.Windows.Forms not found.» This issue usually occurs when the required assembly reference for Windows Forms is missing or improperly configured in your project. Here are some steps to troubleshoot and resolve this common problem:
1. Check Project References
Ensure that your C# project includes a reference to the ‘System.Windows.Forms’ assembly. To add the reference, right-click on the ‘References’ node in your project, select ‘Add Reference,’ and then search for ‘System.Windows.Forms’ in the list of available assemblies.
using System.Windows.Forms;
2. Verify Target Framework
Make sure that your project’s target framework supports Windows Forms. Check the project properties and ensure that the target framework is compatible with Windows Forms.
3. Reinstall .NET Framework
If the ‘System.Windows.Forms’ assembly is still not found, try reinstalling the .NET Framework on your system. This may help in resolving any underlying issues related to missing assemblies.
4. Clean and Rebuild
Sometimes, the error can be due to a build issue. Try cleaning your project and then rebuilding it to see if the problem persists.
5. Update Visual Studio
Ensure that you are using an up-to-date version of Visual Studio with all the necessary components installed. Updating Visual Studio may resolve compatibility issues causing the ‘System.Windows.Forms’ not found error.
By following these troubleshooting steps, you should be able to resolve the ‘System.Windows.Forms’ not found issue in your C# application and continue developing your Windows Forms-based projects seamlessly.
Я попробовал создать (свою первую) программу на 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?
Если да, то какая программа должна быть? Я также пробовал использовать форму, но у меня отображалось только окно, а не код.
Подробнее здесь: https://stackoverflow.com/questions/964 … dows-forms
компилятор ругается на System.Windows.Forms;
От: | Аноним | ||
Дата: | 11.07.05 07:18 | ||
Оценка: |
Коллеги, подскажите, плиз!
Изучаю .NET. Попробовал в программке на С# выдать элементарный MessageBox.
Написал так:
using System.Windows.Forms;
......
......
MessageBox.Show("Привет!");
или вот так:
System.Windows.Forms.MessageBox.Show("Привет!");
При компиляции получаю сообщение:
The type or namespace name ‘Windows’ does not exist in the class or namespace ‘System’ (are you missing an assembly reference?)
Что за лажа?
Re: компилятор ругается на System.Windows.Forms;
От: |
Jenyay |
http://jenyay.net | |
Дата: | 11.07.05 07:23 | ||
Оценка: |
Здравствуйте, <Аноним>, Вы писали:
А>При компиляции получаю сообщение:
А>The type or namespace name ‘Windows’ does not exist in the class or namespace ‘System’ (are you missing an assembly reference?)
А System.Windows.Forms.dll подключил?
… << RSDN@Home 1.1.4 beta 7 rev. 0>>
Re[2]: компилятор ругается на System.Windows.Forms;
От: | Аноним | ||
Дата: | 11.07.05 07:28 | ||
Оценка: |
Здравствуйте, Jenyay, Вы писали:
J>Здравствуйте, <Аноним>, Вы писали:
А>>При компиляции получаю сообщение:
А>>The type or namespace name ‘Windows’ does not exist in the class or namespace ‘System’ (are you missing an assembly reference?)
J>А System.Windows.Forms.dll подключил?
Нет. А что — надо для каждого using’а явно подключать dll
Re[2]: компилятор ругается на System.Windows.Forms;
От: | Аноним | ||
Дата: | 11.07.05 07:31 | ||
Оценка: |
Здравствуйте, Jenyay, Вы писали:
J>Здравствуйте, <Аноним>, Вы писали:
А>>При компиляции получаю сообщение:
А>>The type or namespace name ‘Windows’ does not exist in the class or namespace ‘System’ (are you missing an assembly reference?)
J>А System.Windows.Forms.dll подключил?
А на кой тогда ключевое слово using, если компилятору надо объяснять, где брать стандартные библиотеки?!
Re[2]: компилятор ругается на System.Windows.Forms;
От: | Аноним | ||
Дата: | 11.07.05 07:40 | ||
Оценка: |
Здравствуйте, Jenyay, Вы писали:
J>Здравствуйте, <Аноним>, Вы писали:
А>>При компиляции получаю сообщение:
А>>The type or namespace name ‘Windows’ does not exist in the class or namespace ‘System’ (are you missing an assembly reference?)
J>А System.Windows.Forms.dll подключил?
Аууу!?
Объясните дураку, когда компилятор хавает using без подключения dll, а когда нет?!
В java всегда достаточно написать #import (аналог С#-го usinga)…
Re[3]: компилятор ругается на System.Windows.Forms;
От: |
_FRED_ |
@ViIvanov | |
Дата: | 11.07.05 07:43 | ||
Оценка: |
Здравствуйте, <Аноним>, Вы писали:
А>>>При компиляции получаю сообщение:
А>>>The type or namespace name ‘Windows’ does not exist in the class or namespace ‘System’ (are you missing an assembly reference?)
J>>А System.Windows.Forms.dll подключил?
А>Нет. А что — надо для каждого using’а явно подключать dll
Не для каждого «каждого using’а», а для каждого класса надо найти в МСДН (или другой документации) его описание и посмотреть секцию «Requirements» (в самом низу страницы, например здесь) — из неё можно узнать пространство имён, которое надо указать перед использованием класса («Namespace») и сборку, которую надо подключить к проекту («Assembly») если она ещё не подключена.
В одной сборке могут быть классы из нескольких пространств имён (System.Uri и System.Net.Sockets.TcpClient в System.dll), так же как и классы из разных сборок могут быть в одном пространстве имён (System.Uri в System.dll и System.Int32 в mscorlib.dll).
<< RSDN@Home 1.1.4 beta 7 rev. 500 >> =11:43= [Windows XP — 5.1.2600.0]
under «*none*»
Help will always be given at Hogwarts to those who ask for it.
Re[3]: компилятор ругается на System.Windows.Forms;
От: |
Oyster |
https://github.com/devoyster | |
Дата: | 11.07.05 07:44 | ||
Оценка: |
Здравствуйте, <Аноним>, Вы писали:
А>Объясните дураку, когда компилятор хавает using без подключения dll, а когда нет?!
А>В java всегда достаточно написать #import (аналог С#-го usinga)…
В .NET всегда надо явно добавлять в references используемые сборки. Класс MessageBox находится в сборке System.Windows.Forms, поэтому эту сборку надо явно добавить в references.
Re: компилятор ругается на System.Windows.Forms;
От: |
nzeemin |
http://nzeemin.livejournal.com/ | |
Дата: | 11.07.05 07:45 | ||
Оценка: |
Здравствуйте, <Аноним>, Вы писали:
А>При компиляции получаю сообщение:
А>The type or namespace name ‘Windows’ does not exist in the class or namespace ‘System’ (are you missing an assembly reference?)
Вероятно, вы не добавили эту библиотеку в References проекта. using лишь указывает, что в данном файле используются объявления из этой библиотеки…
Создавайте проект через File|New|Project, Windows Application — все необходимые библиотеки будут сразу подключены в References.
Re[4]: компилятор ругается на System.Windows.Forms;
От: | Аноним | ||
Дата: | 11.07.05 07:55 | ||
Оценка: |
Здравствуйте, Oyster, Вы писали:
O>Здравствуйте, <Аноним>, Вы писали:
А>>Объясните дураку, когда компилятор хавает using без подключения dll, а когда нет?!
А>>В java всегда достаточно написать #import (аналог С#-го usinga)…
O>В .NET всегда надо явно добавлять в references используемые сборки. Класс MessageBox находится в сборке System.Windows.Forms, поэтому эту сборку надо явно добавить в references.
ВСЕГДА???
Я уже не первый день пробую писать всякие тестовые приложеньица на С# (например, использовал System.Collections — и ничего, кроме using’а компилятору не «объяснял») — и только первый раз наткнулся на необходимость явно делать Reference…
Re[4]: компилятор ругается на System.Windows.Forms;
От: | Аноним | ||
Дата: | 11.07.05 08:03 | ||
Оценка: |
Здравствуйте, Oyster, Вы писали:
O>Здравствуйте, <Аноним>, Вы писали:
А>>Объясните дураку, когда компилятор хавает using без подключения dll, а когда нет?!
А>>В java всегда достаточно написать #import (аналог С#-го usinga)…
O>В .NET всегда надо явно добавлять в references используемые сборки. Класс MessageBox находится в сборке System.Windows.Forms, поэтому эту сборку надо явно добавить в references.
«Самые стандартные» классы компилятор хавает по умолчанию?
Re[5]: компилятор ругается на System.Windows.Forms;
От: |
Oyster |
https://github.com/devoyster | |
Дата: | 11.07.05 08:09 | ||
Оценка: |
Здравствуйте, <Аноним>, Вы писали:
O>>В .NET всегда надо явно добавлять в references используемые сборки. Класс MessageBox находится в сборке System.Windows.Forms, поэтому эту сборку надо явно добавить в references.
А>»Самые стандартные» классы компилятор хавает по умолчанию?
Нет, просто некоторые сборки включаются в проект по умолчанию. Например, всегда подключается сборка mscorlib (даже если её нет в references), по умолчанию в VS.NET 2003 в references добавляются System, System.Data, System.Xml.
Re[4]: компилятор ругается на System.Windows.Forms;
От: | Аноним | ||
Дата: | 11.07.05 08:10 | ||
Оценка: |
_FR>Не для каждого «каждого using’а», а для каждого класса надо найти в МСДН (или другой документации) его описание и посмотреть секцию «Requirements» (в самом низу страницы, например здесь) — из неё можно узнать пространство имён, которое надо указать перед использованием класса («Namespace») и сборку, которую надо подключить к проекту («Assembly») если она ещё не подключена.
_FR>В одной сборке могут быть классы из нескольких пространств имён (System.Uri и System.Net.Sockets.TcpClient в System.dll), так же как и классы из разных сборок могут быть в одном пространстве имён (System.Uri в System.dll и System.Int32 в mscorlib.dll).
СЕНК! Чисто конкретный ответ — по-програмерски!!! Ато начитают деепричастными оборотами сыпать…
Re[6]: компилятор ругается на System.Windows.Forms;
От: | Аноним | ||
Дата: | 11.07.05 08:12 | ||
Оценка: |
Здравствуйте, Oyster, Вы писали:
O>Здравствуйте, <Аноним>, Вы писали:
O>>>В .NET всегда надо явно добавлять в references используемые сборки. Класс MessageBox находится в сборке System.Windows.Forms, поэтому эту сборку надо явно добавить в references.
А>>»Самые стандартные» классы компилятор хавает по умолчанию?
O>Нет, просто некоторые сборки включаются в проект по умолчанию. Например, всегда подключается сборка mscorlib (даже если её нет в references), по умолчанию в VS.NET 2003 в references добавляются System, System.Data, System.Xml.
СЕНКАЮ! Въехал.
Re[3]: компилятор ругается на System.Windows.Forms;
От: |
SiAVoL |
||
Дата: | 11.07.05 08:36 | ||
Оценка: |
Здравствуйте, <Аноним>, Вы писали:
А>А на кой тогда ключевое слово using, если компилятору надо объяснять, где брать стандартные библиотеки?!
using System.Windows.Forms;
Так вот, этой строкой никаких дополнительных сборок не подключается. Вообще говоря, физически пространств имен в .NET не существует
Строка просто указывает в каких пространствах имен следует искать класс, который в коде указан коротким именем (System.Windows.Forms.MessageBox — полное имя класса, а MessageBox — короткое). Т.о. это избавляет нас от необходимости писать везде System.Windows.Forms.MessageBox.Show(«Привет!»)
, вместо короткого варианта MessageBox.Show(«Привет!»)
Т.е. using это просто синтаксический сахар, позволяющий меньше стучать по клавиатуре и получать более удобочитаемый код, не более того.
… << RSDN@Home 1.1.4 beta 7 rev. 501>>
Re[3]: компилятор ругается на System.Windows.Forms;
От: |
misha_sk |
||
Дата: | 11.07.05 09:13 | ||
Оценка: |
А>Объясните дураку, когда компилятор хавает using без подключения dll, а когда нет?!
А>В java всегда достаточно написать #import (аналог С#-го usinga)…
В Java для поиска физического размещения классов используется переменная окружения CLASSPATH. Правда там идет смешенивание физического размшения и логического, в виду необходимости структурирования пакетов по каталогам файловой системы.
- Переместить
- Удалить
- Выделить ветку
Пока на собственное сообщение не было ответов, его можно удалить.