我设置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;
        }
这样也不行。
请问应该怎么做?
我是个初学者。。没回过贴,所以分数也不多。第一次发帖,希望大家帮帮忙。。

解决方案 »

  1.   

    通过构造函数将FORM1的应用传到boiler1中
      

  2.   

    他想禁用MDI主窗体  -.-
      

  3.   

    if (comboBox1.Text == "boiler1")
      {
      this.Enabled = false; //this指的是Form1
      boiler1 form=new boiler1(this);  
      form.Show();
      }
    子窗体:
    public partial class boiler1
    {
       Form1 form1;
    public boiler1(Form1 form1)
    {
         InitializeComponent();
          this.form1 = form1;
    }
    private void boiler1_FormClosed(object sender, FormClosedEventArgs e)
      {
      form1.Enabled = true;
      }
    }
      

  4.   

    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;
            }经过验证的 ,这个是完全可以胜任的
      

  5.   

    用把子窗体用模式窗体SHOW出来,这样打开子窗体或
      父窗体就不能控制了
        必须关掉子窗体才能用父窗体
      

  6.   

    其实要实现打开子窗口后,父窗口不可操作不需要修改父窗口的enable属性。只需要在显示子窗口时使用showdialog(this)方法而不使用show方法。即可。
      

  7.   

    原来ShowDialog()可以这样用。。
    4楼和9楼的方法都可以,谢谢大家了~~~