繁体   English   中英

2个项目,1个解决方案。 项目A从项目B调用表单,反之亦然。 C#VS2010

[英]2 Projects, 1 Solution. Project A calls forms from project B and vice versa. C# VS2010

我有一个从项目B调用表单的项目A。项目A中的表单被禁用,项目B表单打开。 关闭时,我需要项目B重新启用项目A表单,但是它不允许我执行,因为由于循环引用,我无法对其进行引用。 如何从项目A引用项目B中的内容?

听起来项目B不需要回溯到项目A。有多种方法可以实现此目的:

a。)项目A的窗体通过在其上调用ShowDialog()而不是Show()来打开项目B窗体。 这将自动禁用A的表单,直到B的关闭。

b。)项目A的窗体手动禁用自身,并开始侦听项目B窗体上的FormClosed事件。 事件触发时,Project A的表单再次启用。

c。)在特殊情况下,有时您需要A的表单来禁用并显示B的表单,有时又需要B的表单来禁用并显示A的表单,您可以通过让Project A创建两个表单并传递一个表单作为引用来做到这一点。到另一个。 将构造函数添加到采用另一种形式作为参考的形式:

private Form _formA;

public FormB(Form formA) {
    InitializeComponent();

    _formA = formA;
}

private void buttonFormA_Click(object sender, EventArgs e) {
    _formA.ShowDialog();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM