有两种形式 - Form1& Form2.Form1有一个按钮(btnNew),单击时打开Form2,并被禁用。我需要再次启用该按钮,仅当Form2关闭时。用户还需要同时使用Form1。此代码不再启用该按钮。我想念的地方。
在Form1中:
private void btnNew_Click_1(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
btnNew.Enabled = false;
}
public void EnableButton()
{
btnNew.Enabled = true;
}
在Form2中:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Form1 f1 = new Form1();
f1.EnableButton();
}
答案 0 :(得分:1)
您的代码会创建一个新的Form1,它将与您在应用程序中运行的Form1不同。
您可以尝试在Form2中添加对Form1的引用,并以此方式对其进行操作。
为form2提供如下属性:
public Form ParentForm {get; set;}
在按钮点击中分配form1:
Form2 f2 = new Form2()
f2.ParentForm = this;
f2.show();
然后在你的结束时,你应该可以做类似的事情:
this.ParentForm.EnableButton();
答案 1 :(得分: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;
}