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

同一解决方案下跨项目调用窗体时无法引用原项目如何解决

问题原因

Project2默认没有引用Project1的程序集,且直接双向引用会产生循环依赖问题,不建议直接调用Project1的窗体类。

推荐解决方法(无循环依赖)

步骤1:在Project2的Form1中添加构造函数参数,接收要恢复显示的窗体实例

' Project2.Form1 的代码
Private _parentForm As Form
' 新增带参数的构造函数
Public Sub New(parentForm As Form)
    InitializeComponent() ' 必须保留这行初始化控件
    _parentForm = parentForm
End Sub

步骤2:Project1调用Project2.Form1时传入自身实例

把原来的调用代码改成:

Dim frm As New Project2.Form1(Me) ' 把当前Project1的Home窗体实例传进去
frm.Show()
Me.Hide()

步骤3:Project2.Form1的退出按钮代码改为使用传入的实例恢复显示

If _parentForm IsNot Nothing Then
    _parentForm.Show()
End If
Me.Close()

可选解决方法(直接添加引用,不推荐,易产生循环依赖)

如果一定要直接在Project2中调用Project1的类,按以下步骤操作:

  • 右键点击解决方案资源管理器中的Project2项目,选择「添加」->「引用」
  • 在弹出的窗口中切换到「项目」选项卡,勾选Project1,点击确定
  • 回到Project2的代码文件顶部,添加Imports Project1语句即可识别Project1中的类

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 07:54:03