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

时间:2017-07-18 18:59:10

标签: c# winforms visual-studio-2010

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

1 个答案:

答案 0 :(得分:0)

听起来项目B不需要参考项目A。有很多方法可以实现这一点:

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

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

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

private Form _formA;

public FormB(Form formA) {
    InitializeComponent();

    _formA = formA;
}

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