我刚刚开始研究c#,并且正在摆弄一些我从某个论坛获得的代码示例。
此代码使用的命名空间using system.windows.forms
我收到错误:Forms does not exist in the namespace system.windows
。此外,我收到一些与senddown
&的未定义函数相关的错误。 sendup
我相信它位于Forms
名称空间。
我正在使用visual studio 10(使用.net框架工作4.0)。知道如何修复此错误吗?
感谢。
答案 0 :(得分:109)
在解决方案树中展开项目,right click
上的References
,Add Reference
,在System.Windows.Forms
标签上选择Framework
。
有时需要添加对某些非默认程序集的引用。
答案 1 :(得分:4)
以防万一有人在尝试在.NET Core 3+ WPF应用程序中引用Windows Forms组件时遇到此错误(实际上并不罕见)。解决方案是进入.csproj文件(在VS2019中双击它),然后将其添加到包含目标框架的属性组节点中。像这样:
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
答案 2 :(得分:3)
Windows 桌面 API(包括 Windows 窗体、WPF 和 WinRT)仅在面向 net5.0-windows 时可用。您可以指定操作系统版本,例如 net5.0-windows7 或 net5.0-windows10.0.17763.0(适用于 Windows 2018 年 10 月更新)。如果您想使用 WinRT API,您需要以 Windows 10 版本为目标。
在您的项目中:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
也很有趣:
答案 3 :(得分:1)
如果您是在 .Net Core 应用中编写 Windows窗体代码,则很可能会遇到此错误:
错误CS0234类型或名称空间名称'Forms'在名称空间'System.Windows'中不存在(您是否缺少程序集引用?)
如果您使用的是Sdk样式的项目文件(建议使用),则您的* .csproj文件应与此类似:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</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" />
答案 4 :(得分:0)
答案 5 :(得分:0)