visual studio C#windows窗体管理

时间:2014-04-22 16:57:11

标签: c# forms

如何在每个表单上维护表单设置,设计和值的同时在表单之间切换? 我正在使用此方法,但每次创建新的默认表单值和新表单时。

主要形式:

 private void button2_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        this.Hide();
        f2.ShowDialog();
    }

第二种形式:

private void button2_Click(object sender, EventArgs e)
    {
        Main f1 = new Main();
        this.Hide();
        f1.Show();          
    }

每次在它们之间切换时,我都需要保存此表单的值。我该怎么做?

3 个答案:

答案 0 :(得分:0)

问题:您正在创建现有表单的新实例。表明它正在新创建表单。

解决方案:您需要使用Application.OpenForms[]

从内存中重新打开现有(隐藏)表单

重新解读:

private void button2_Click(object sender, EventArgs e)
{
    Main f1 = new Main();
    this.Hide();
    f1.Show();          
}

有了这个:

private void button2_Click(object sender, EventArgs e)
{
   Form frm = Apllication.OpenForms["Main"];     
   frm.Show();   
}

答案 1 :(得分:0)

从按钮点击处理程序

中删除此声明

而是这样做

Form2 f2 = new Form2();

private void button2_Click(object sender, EventArgs e)
{

    this.Hide();
    f2.ShowDialog();
}

private Main form = new Main();
private void button2_Click(object sender, EventArgs e)
{
   this.Hide(); 
   form.Show();   
}

答案 2 :(得分:0)

以主要形式

public partial class Form1 : Form
{
    Form2 form2;
    public Form1()
    {
        InitializeComponent();
        form2 = new Form2(this);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        form2.Show();
    }
}

以Form2形式

public partial class Form2 : Form
{
        Form1 form1;
        public Form2(Form1 _form1)
        {
            InitializeComponent();
            form1 = _form1;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Hide();
            form1.Show();

        }
}