在C#2008中,我想在Form1中通过点及一个按扭打开一个已经设计好的Form2,并把Form2的窗口激活(即:如果最小化,则还原
如果不是活动窗体,则将其激活),如果窗体关闭或者没有打开,则打开Form2。记得这种方式在VB6.0中是可以实现的。
注意:不要使用New 运算符,因为Form2是已经设计好了的。 

解决方案 »

  1.   

    this.visiable=false;
    form2 fr=new form2();
    fr.show();
    至于你说的from2已经设计好不想new。我想是你对面向对象还什么了解,
    form2 fr=new form2();这句话只是将你设计好的form2进行一次实例化,新打开的窗体还是你设计好的那个窗体。
      

  2.   

    不使用new,那你得把你的FORM2改成静态类,不然怎么SHOW()啊~
      

  3.   

    form2 fr=new form2(); 
    fr.Show();
    fr.Activate();
    fr.WindowState = FormWindowState.Maximized;
    没有打开时判断form2是否存在,不存在打开页面
      

  4.   

    是这样的,我想在FORM2中保存一些值,如在FORM2中建一个TEXT,打开FORM2后,再在TEXT中输入一些值,当FORM2结关闭后再次打开时,我想看到的是FORM2中的那个TEXT中的值还存在那里,不知道能不能做到?
    把你的FORM2改成静态类,可帮助我写一下代码吗?
      

  5.   

    public static partial class Form2 : Form
    我还是不能够在FORM1中这样写啊: Form2.show(); 
      

  6.   

    可以这样解决。
    在Form1中声明加入:public string strtext;//存储Form2中要存储的比如textBox1中的文本值。
    在Form2中加入如下代码:
    public Form1 main;
    修改textBox1的定义为public
    修改Form1的构造函数为:
    Form2(Form1 main)
    {
       this.main = main;
       ...
    }
    private void Form2_Closing(object   sender,System.ComponentModel.CancelEventArgs   e)   
    {   
       main.strtext = textBox1.text;//Form2窗体函数退出时保存textBox1.text
    }
    最后在Form1的按钮响应函数中添加如下代码:
    this.visiable=false; 
    if(childForm == null)   
    {   
       childForm = new Form2(this);
       childForm.textBox1.text = strtext; 
    }   
    childForm.Show();