C# 命名空间system.windows中不存在“Forms”

C# 命名空间system.windows中不存在“Forms”,c#,winforms,C#,Winforms,我刚刚开始使用c语言,正在摆弄从某个论坛上获得的一些代码示例 此代码使用的命名空间使用system.windows.forms,我收到一个错误: 命名空间system.windows中不存在表单 此外,我还发现了一些与senddown和sendup的未定义函数相关的错误,我认为这些函数位于表单名称空间中 我正在使用visual studio 10和.net frame work 4.0。知道如何修复此错误吗?在解决方案树中展开项目,右键单击引用,添加引用,选择“框架”选项卡上的System.Wi

我刚刚开始使用c语言,正在摆弄从某个论坛上获得的一些代码示例

此代码使用的命名空间使用system.windows.forms,我收到一个错误:

命名空间system.windows中不存在表单

此外,我还发现了一些与senddown和sendup的未定义函数相关的错误,我认为这些函数位于表单名称空间中


我正在使用visual studio 10和.net frame work 4.0。知道如何修复此错误吗?

在解决方案树中展开项目,右键单击引用,添加引用,选择“框架”选项卡上的System.Windows.Forms

有时需要添加对某些非默认程序集的引用


评论:对于寻找VS 2019+:现在添加项目引用是在解决方案资源管理器中右键单击依赖项。

以防有人在尝试引用.NET Core 3+WPF应用程序中的Windows窗体组件时遇到此错误,这实际上并不少见。解决方案是进入.csproj文件,在VS2019中双击该文件,并将其添加到包含目标框架的属性组节点。像这样:

<PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
    <UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
如果您在.Net核心应用程序中编写Windows窗体代码,则很可能会遇到以下错误:

错误CS0234命名空间“System.Windows”中不存在类型或命名空间名称“Forms”。是否缺少程序集引用

如果您使用的是推荐的Sdk样式的项目文件,*.csproj文件应与以下类似:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <OutputType>WinExe</OutputType>
    <UseWindowsForms>true</UseWindowsForms>
    <RootNamespace>MyAppNamespace</RootNamespace>
    <AssemblyName>MyAppName</AssemblyName>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Windows.Compatibility" Version="3.0.0" />
  </ItemGroup>
</Project>
请特别注意以下几行:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<OutputType>WinExe</OutputType>
<UseWindowsForms>true</UseWindowsForms>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="3.0.0" />
请注意,如果在引用某些WinForms库时使用WPF,还应添加true


提示:自.NET 5.0以来,Microsoft建议使用SDK Microsoft.NET.SDK代替Microsoft.NET.SDK.WindowsDesktop。

如果解决方案中有多个项目,并且其中一个项目实际位于解决方案文件夹中,则可能会遇到此问题。 我通过右键单击解决方案树中的此文件夹->然后按“从项目中排除”解决了此问题

净5 引述:

Windows桌面API(包括Windows窗体、WPF和WinRT)仅在针对net5.0-Windows时可用。您可以为Windows 2018年10月更新指定操作系统版本,如net5.0-windows7或net5.0-windows10.0.17763.0。如果要使用WinRT API,则需要以Windows 10版本为目标

在您的项目中:

温克斯 net5.0-windows 符合事实的 同样有趣的是:

net5.0是.net5.0的新目标框架名字对象TFM。 net5.0结合并取代netcoreapp和netstandard TFMs。 net5.0支持.NET Framework兼容模式 net5.0-windows将用于公开特定于windows的功能,包括windows窗体、WPF和WinRT API。 .net6.0将使用与net6.0相同的方法,并将添加net6.0-ios和net6.0-android。 特定于操作系统的TFM可以包括操作系统版本号,如net6.0-ios14。 可移植API(如ASP.NET Core)可用于net5.0。使用net6.0的Xamarin表单也是如此。
添加对System.Windows.FormsSunds的引用,就像创建WPF项目而不是Windows窗体一样project@todda,谢谢,有效:@shf301,是的,这是一个WPF项目,但添加提到的参考有效。为了将来参考,当问SO问题时,请粘贴准确的代码,这是非常区分大小写的…@sara关于你的赏金,你在这里寻找什么样的答案?你需要什么官方来源?问题已经得到了明确的回答:您不能使用未添加引用的名称空间中的项。你在找语言标准中的引文来表达同样的观点吗。我的印象是我已经添加了它。只是又检查了一遍,果然不见了。谢谢:右键单击项目下的“引用”节点。@naXa从那时起事情发生了变化,yes@naXa哦,你的意思是在菜单中而不是在解决方案资源管理器窗口中添加项目>引用。。。此外,它仅在首先在解决方案资源管理器窗口中选择“引用”>“分析器”时才会显示。为查找VS 2019的用户更新-现在,在解决方案资源管理器中右键单击“依赖项”即可添加项目引用。这正是适合我的解决方案。我看到的许多建议的解决方案都建议添加对System.Window.Forms的引用,但这个建议对我从来都不起作用。我能够添加该引用并解决缺少的Forms类,但通过添加该引用,它破坏了System.WindowStrange,它在一台计算机上工作,但在另一台计算机上打开时失败。解决方案是使用WindowsForms标签。您可能会认为,对于.net core中Windows窗体的问题,Visual Studio将在错误查找和允许您在gui中添加窗体方面提供更有用的功能,而无需关闭、手动编辑和重新加载…谢谢。而且,这对我们来说是必要的 让我将targetframework从net5.0更改为net5.0-windows。
browxy.com 
Compilation failed: 1 error(s), 0 warnings
main.cs(7,24): error CS0234: The type or namespace name `Forms' does not exist in the namespace `System.Windows'. Are you missing `System.Windows.Forms' assembly reference?