You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio中C# WPF项目无法使用System.Windows.Forms求助

解决WPF项目中System.Windows.Forms引用报错问题

一、先确认程序集引用的正确操作

针对不同.NET框架版本,引用方式有区别:

  • .NET Framework 4.x项目:
    右键项目 → 「添加」→「引用」→ 切换到「程序集-框架」标签,找到System.Windows.Forms和System.Drawing(通常需同时添加),勾选后确定。
  • .NET 5/6/7/8等项目:
    不能通过框架引用添加,必须打开NuGet包管理器,搜索System.Windows.Forms并安装官方包。

二、检查项目目标框架匹配

右键项目 →「属性」→「应用」标签页,查看目标框架:

  • 若使用.NET Framework,确保引用的是框架自带的System.Windows.Forms,不要误装NuGet包;
  • 若使用新版本.NET,必须通过NuGet安装,框架默认不包含WinForms组件。

三、推荐用WPF原生方式切换页面

你当前用的是WinForms的Form操作逻辑,不符合WPF设计规范,更合适的方案有两种:

1. 打开新的WPF窗口

如果Application_Main_MainPage是WPF Window类,直接用WPF自带API:

// 删除using System.Windows.Forms;这句
var mainWindow = new Application_Main_MainPage();
mainWindow.Show();
this.Close(); // 直接关闭登录窗口,避免后台残留进程

2. 单窗口内导航(更优雅)

在登录窗口的XAML里添加Frame控件:

<Frame x:Name="MainContentFrame" NavigationUIVisibility="Hidden"/>

登录成功后导航到目标页面:

MainContentFrame.Navigate(new Application_Main_MainPage());
// 可隐藏登录相关控件,或直接用Frame覆盖原有内容

四、仍报错的排查步骤

  • 清理并重新生成项目:点击「生成」→「清理解决方案」,再点击「生成解决方案」;
  • 检查引用状态:右键项目→「引用」,确认System.Windows.Forms存在且无黄色感叹号(若有则重新添加引用);
  • 重启Visual Studio,缓存问题偶尔会导致引用识别异常。

内容的提问来源于stack exchange,提问作者Jake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:52:44