0

有两个表单-Form1 和 Form2。Form1 有一个按钮(btnNew),单击时打开 Form2,并且被禁用。我需要再次启用按钮,只有当 Form2 关闭时。用户还需要同时使用 Form1。这段代码没有再次启用该按钮。我在哪里失踪。

在表格 1 中:

private void btnNew_Click_1(object sender, EventArgs e)
  {   
    Form2 f2 = new Form2();
    f2.Show();
    btnNew.Enabled = false;
  }   
public void EnableButton()
 {
    btnNew.Enabled = true;
 }

在表格 2 中:

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
  {
    Form1 f1 = new Form1();
    f1.EnableButton();
  }
4

2 回答 2

1

您的代码创建了一个新的 Form1,它与您的应用程序中已经运行的不同。

您可以尝试在 Form2 中添加对 Form1 的引用并以这种方式对其控件进行操作。

给 form2 一个属性,如:

public Form ParentForm {get; set;}

并在您的按钮单击中将其分配给 form1:

Form2 f2 = new Form2()
f2.ParentForm = this;
f2.show();

然后在您关闭时,您应该能够执行以下操作:

this.ParentForm.EnableButton();
于 2013-04-08T05:35:57.383 回答
0

Form2在实例化它的类中订阅您的关闭事件 ( Form1)。

private void btnNew_Click_1(object sender, EventArgs e)
  {   
    Form2 f2 = new Form2();
    f2.Closing += f2_Closing;
    f2.Show();
    btnNew.Enabled = false;

  }   

public void f2_Closing(object sender, FormClosingEventArgs e)
{
   this.EnableButton();
}

public void EnableButton()
 {
    btnNew.Enabled = true;
 }
于 2013-04-08T05:41:38.127 回答