在Windows窗体应用程序中单击按钮时隐藏窗体并显示另一个窗体

Nat*_*aly 6 c# user-interface winforms

我正在做一个Windows窗体应用程序的应用程序.首先,会出现某个表单,在用户点击下一个按钮后,应隐藏此表单并显示另一个表单.

我试着这样做.我设法隐藏了当前的表单,但下一个表单将无法显示.

这是我的尝试:

这是按钮的事件处理程序

private void button1_Click_1(object sender, EventArgs e)
{
    if (richTextBox1.Text != null)
    {
        this.Visible=false;


    }
    else
        MessageBox.Show("Insert Attributes First !");
}
Run Code Online (Sandbox Code Playgroud)

这是主要功能:

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Form2 form2 = new Form2();
    Form1 form1 = new Form1();
    form2.Hide();
    Application.Run(form1);
    while (true)
    {
        if (form1.Visible == false)
            form2.Show();
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*tin 6

在form1关闭之后,While语句才会执行 - 因为它在主消息循环之外.

删除它并将代码的第一位更改为:

private void button1_Click_1(object sender, EventArgs e)  
{  
    if (richTextBox1.Text != null)  
    {  
        this.Visible=false;
        Form2 form2 = new Form2();
        form2.show();
    }  
    else MessageBox.Show("Insert Attributes First !");  

}
Run Code Online (Sandbox Code Playgroud)

这不是实现您想要做的事情的最佳方式.而是考虑向导设计模式.

或者,您可以实现一个自定义ApplicationContext来处理两个表单的生命周期.这里有一个实现启动画面的例子,它应该让你走上正确的道路.

http://www.codeproject.com/KB/cs/applicationcontextsplash.aspx?display=Print