在C#中如何实现窗体之间的跳转?

比如,点击一个BUTTON,即可以从这个窗体转换到另一个新的窗体,用代码如何实现?

    首先 program.cs 中 

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        // 自动生成的代码是这样的
        // Application.Run(new Form1());

        // 表示 实例化一个新的 Form1 并显示之 此时程序进入消息循环
        // 一旦 Form1 被关闭则程序也随之关闭了
        // 为了让程序在 Form1 关闭后可以继续运行 需要修改下

        new Form1().Show();
        Application.Run();

        // 这样做就能避免 Form1 被关闭后程序自动退出了

        // 但这样做的风险是什么呢?
        // 一旦用户忘记了 Application.Exit();
        // 则程序在所有窗口关闭后 其进程仍然没有结束
        // 所以 Application.Exit(); 这行代码是需要手动添加的
    }

    Form1:Button_Click

    Form2 f = new Form2();
    f.Show();
    this.Close();

    Form2:Button_Click

    Form1 f = new Form1();
    f.Show();
    this.Close();

    注意:当最后一个窗口关闭时要调用 Application.Exit(); 否则程序进程是不会结束的

    解决办法:(假设Form2是最后一个窗口)

    private void Panel1_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.Closed += new EventHandler(this.f2_Closed);
     //f2.Closed += (obj, args) => { Application.Exit(); };
        f2.Show();
        this.Close();
    }

    private void f2_Closed(object sender, EventArgs e)
    {
        Application.Exit();
    }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-06
Frm1 frm1=new Frm1();frm1.Show(); 实例化需要弹出的窗体之后,调用Show方法之后就可以了一把加入变量控制,防止多次点击多次弹出,你可以对比两端代码,很简单int i=0;if(i==0){ i++; Frm1 frm1=new Frm1(); frm1.Show();}本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网