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


71

我刚刚开始从事C#工作,并且不喜欢从某个论坛获得的一些代码示例。

这段代码使用的是using system.windows.forms我收到错误的命名空间:

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

我也是收到有关未定义功能的一些错误senddownsendup我认为是在Forms名字空间。

我正在使用Visual Studio 10(带有.net frame work 4.0)。任何想法如何解决此错误?


16
添加参考System.Windows.Forms
ta.speot.is 2011年

3
听起来您创建的是WPF项目而不是Windows Forms项目
shf301 2011年

3
@todda,谢谢,那很有用:) @ shf301,是的,这是一个WPF项目,但是添加提到的参考是可行的。
约翰·史密斯,

2
供将来参考,当问一个SO问题时,请粘贴确切的代码,这在其他方面非常区分大小写……

2
@sara关于您的赏金,您在这里寻找什么样的答案?您需要什么“官方资源”?显然已经回答了该问题:您不能使用未添加引用的名称空间中的项目。您是否正在从语言标准中寻找引证相同的观点?
科迪·格雷

Answers:


135

展开解决方案树项目,right clickReferencesAdd Reference中,选择System.Windows.FormsFramework选项卡。

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


2
好的,行得通。我觉得已经添加了它。只是再次检查,并按预期,它丢失了。谢谢:)
约翰·史密斯

1
右键单击“项目”下的“引用”节点。
naXa

@naXa事情从那时起发生了变化,是的
VMAtm

@naXa哦,您的意思是菜单中的“项目>添加引用”,而不是解决方案资源管理器窗口中的...。也只有在首先在解决方案资源管理器窗口中选择“引用>分析器”时才会显示。
杰罗米

29

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

<PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
    <UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>

3
这正是为我工作的解决方案。我看到的许多建议的解决方案都建议添加对“ System.Window.Forms”的引用,但是该建议对我没有用。我能够添加该引用并解决我丢失的Forms类,但是通过添加该引用,它破坏了“ System.Window”
Tom Rutchik

11

如果要在.Net Core应用程序中编写Windows Forms代码,则很可能会遇到此错误:

错误CS0234类型或名称空间名称'Forms'在名称空间'System.Windows'中不存在(您是否缺少程序集引用?)

如果使用的是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,则也应添加<UseWPF>true</UseWPF>


0

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

排除文件夹

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.