我有一个项目A从项目B调用表单。项目A中的表单被禁用,项目B表单打开。关闭时,我需要项目B重新启用项目A表单,但它不允许我,因为我无法通过循环引用引用它。如何从项目A中引用项目B中的内容?
答案 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();
}