C# WinForm如何引用同解决方案其他项目并使用其属性、窗体
跨项目调用Project2主窗体实现方法
仅把两个项目放在同一个解决方案里无法直接实现跨项目调用,按以下步骤配置即可实现需求:
- 第一步添加项目引用:右键点击project1项目节点下的「依赖项」(VS2019及更早版本叫「引用」),选择「添加项目引用」,在弹出的窗口中选择「解决方案」分类,勾选列表中的project2,点击确定完成配置。这一步是跨项目访问类型的前置条件,未添加引用时编译器无法识别project2内定义的类型。
- 第二步处理命名空间:两种方式可选,要么在编写调用逻辑的cs文件顶部添加using语句,引入project2主窗体所在的命名空间,例如主窗体在project2根命名空间下就写
using project2;,如果放在子命名空间下就写对应完整路径;要么编写实例化代码时直接带上完整命名空间前缀,无需额外添加using语句。 - 第三步修正代码语法错误:C#是大小写敏感的语言,你提供的参考代码里
show()写法有误,WinForms窗体的显示方法为首字母大写的Show(),全小写写法会直接触发编译报错。
常见踩坑提示
- 检查project2主窗体的访问修饰符:Visual Studio默认新建的窗体类访问级别为
internal,仅允许在project2项目内部访问,跨项目调用需要先修改:打开project2mainform的代码文件,将类定义修改为public partial class project2mainform : Form,添加public修饰符后才能被外部项目识别调用。- 保证两个项目的目标框架兼容:例如不能一个项目目标框架是.NET Framework 4.5,另一个是.NET 7,否则添加引用时会报框架不兼容错误,右键项目选择「属性」即可调整目标框架版本,修改为互相兼容的版本即可。
- 配置完成后,project2中所有用
public修饰的类、属性、资源,都可以在project1中直接调用,调用方式和使用本项目内的成员没有区别。
配置完成后,使用以下代码即可实现实例化并显示project2主窗体的效果:
// 已添加项目引用、引入对应命名空间的前提下可直接运行 project2mainform p2m = new project2mainform(); p2m.Show();
内容的提问来源于stack exchange,提问作者user198455
相关产品推荐
相关产品推荐

