日期:2014-05-17  浏览次数:20748 次

C#不同窗体之间空间Enable属性控制
我想在Form1打开Form2,并且使得Form1中的textbox的Enable属性变为false,当Form2打开,工作完,关闭时候,让Form1的textbox1的Enable属性重置为true,请指导啊!

------解决方案--------------------
引用:
比如说:我在Form1中代码是这样的:        
         public static Form1 frm1 = new Form1();
        private void textBox1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            Form2 frm2 = new Form2();
            textBox1.Enabled = false;
            frm2.Show(frm1);
        }
在Form2的 时间中如何修改textbox1.Enabled=true呢  
         private void button1_Click(object sender, EventArgs e)
        {
           
        }


FORM1中:
public TextBox TB
{
     get{return textbox1;}
}
private void textBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
      Form2 frm2 = new Form2();
      textBox1.Enabled = false;
      frm2.Show(this);
}
FORM2中:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
//至于是什么情况下关闭的根据你的情况判断
      Form1 f1=(Form1)this.Owner;
      f1.TB.Enabled=true;
}

------解决方案--------------------
把Form1的textBox1的Modifiers改为internal或public
然后在Form1中弹窗

Form2 frm2 = new Form2();
//在Form2关闭是置为true,其他事件类似
frm2.FormClosed += (obj, evt) => (this.Owner as Form1).textBox1.Enabled = true;