【问题标题】:switch between two Form in C#?在 C# 中的两个表单之间切换?
【发布时间】:2013-06-06 01:42:42
【问题描述】:

我有两种表格:Form1 和 Form2。 Form1 有 button1,Form2 有 button2。 项目运行时,显示Form1,点击button1,显示Form2,隐藏form1。如果我单击 button2,则 Form1 可见,而 Form2 已关闭!

表格1:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }


    private void button1_Click(object sender, EventArgs e)
    {
        this.Hide();
        Form2 fo = new Form2();
        fo.Visible = true;
    }


}

表格2:

公共部分类 Form2 : Form { 公共表格2() { 初始化组件(); }

    private void button1_Click(object sender, EventArgs e)
    {
        Form1 f1 = new Form1();
        f1.Visible = true;
        this.Close();
    }


}

【问题讨论】:

  • 有什么问题?
  • 你在Form2按钮2点击事件上写了什么代码..请分享给我们。

标签: c# forms


【解决方案1】:
void Button1_Click(...)
{
   Form2 f2=new Form2(form1);
   f2.ShowDialog();
   form2.Hide();
}

void Button2_Click(...)
{
   this.Hide();
   form1.Show();
}

【讨论】:

  • ShowDialog 是一个阻塞调用,这不是假装的。
【解决方案2】:

假设Form1是program.cs中传递给Application.Run()的“启动表单”:

public partial class Form1 : Form
{

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

        foreach (Form frm in Application.OpenForms)
        {
            if (frm is Form2)
            {
                frm.Show();
                return;
            }
        }

        Form2 f2 = new Form2();
        f2.Show();
    }

}

与:

public partial class Form2 : Form
{

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

        foreach (Form frm in Application.OpenForms)
        {
            if (frm is Form1)
            {
                frm.Show();
                return;
            }
        }
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-14
    • 2015-10-18
    • 1970-01-01
    • 2018-05-26
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多