作者:空瓶子姑娘_537 | 来源:互联网 | 2023-09-08 15:44
我设置comboBox中选中相应的选项后,打开子窗口时父窗口变为灰色且不可操作:
if (comboBox1.Text == "boiler1")
{
this.Enabled = false; //this指的是Form1
boiler1 form=new boiler1();
form.Show();
}
但是这样,关闭子窗口后,父窗口不变回原来的样子,还是不可操作,甚至不能关闭。
之后改成这样:
private void boiler1_FormClosed(object sender, FormClosedEventArgs e)
{
Form1 form1 = new Form1();
form1.Enabled = true;
}
这样也不行。
请问应该怎么做?
我是个初学者。。没回过贴,所以分数也不多。第一次发帖,希望大家帮帮忙。。
11 个解决方案
通过构造函数将FORM1的应用传到boiler1中
form1 中代码如下
private void button1_Click(object sender, EventArgs e)
{
this.Enabled = false;
Form2 f = new Form2();
f.Show();
f.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form2_FormClosing);
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
this.Enabled = true;
}
经过验证的 ,这个是完全可以胜任的
用把子窗体用模式窗体SHOW出来,这样打开子窗体或
父窗体就不能控制了
必须关掉子窗体才能用父窗体
其实要实现打开子窗口后,父窗口不可操作不需要修改父窗口的enable属性。只需要在显示子窗口时使用showdialog(this)方法而不使用show方法。即可。
原来ShowDialog()可以这样用。。
4楼和9楼的方法都可以,谢谢大家了~~~