当打开一个窗口时,设置另外的窗口为false很容易,但是关闭这个窗口时,怎么使另外的那个窗口enable=true呢?请教~~~

解决方案 »

  1.   

    设置为public就可以在另一个窗体调用和设置。
      

  2.   

    设置什么为public?窗体本来就是public的呀
      

  3.   

    把窗体类中包含其他窗体类的对象变量设置为public
    public Class MainForm
    {
    public Form1 form1;
    public Form2 form2;
    }
    然后在函数中设置form1,form2的enable属性
      

  4.   

    报错: fstd.Enabled = true  ->“未将对象引用设置到对象的实例。”
      

  5.   

    原因是,你第2个窗体是在第一个窗体中new出来的,所以第2个窗体是第一个的子窗体,你将第一个关了第2个自然是不行的了。
      

  6.   

    Form1:
     
     private void btn_Ok_Click(object sender, EventArgs e)
            {
                Form2 f = new Form2();
                this.Enabled = false;            if (f.ShowDialog() == DialogResult.OK)
                {
                    this.Enabled = true;
                }
            }Form2:
     private void Form2_FormClosed(object sender, FormClosedEventArgs e)
            {
                DialogResult = DialogResult.OK;
            }
    这样就可以了,你试试
      

  7.   

    /// <summary>
        /// 原FROM
        /// </summary>
        public class OriginalForm : Form
        {
            private void ShowAForm()
            {
                ShowForm f2 = new ShowForm(this);
                this.Enabled = false;
                f2.Show();
            }
        }    /// <summary>
        /// 弹出FROM
        /// </summary>
        public class ShowForm : Form
        {
            Form _originalForm;        public ShowForm(Form f)
            {
                this.FormClosed += new FormClosedEventHandler(ShowForm_FormClosed);
                _originalForm = f;
            }        private void ShowForm_FormClosed(object sender, FormClosedEventArgs e)
            {
                _originalForm.Enabled = true;
            }
        }
      

  8.   

    这个可用~~相当于应用了DialogResult全局。
    谢谢
      

  9.   


    //原            this.Enabled = false;
                FormB b = new FormB();
                b.Show(this);//子
    this.Owner.Enabled = true;