当前位置:编程学习 > C#/ASP.NET >>

C#如何在关闭一个窗体之后打开另一个窗体

假设登入窗体Frm_Login;主窗体Frm_Main;
在program里面写:Application.Run(new Frm_Main());
接着在Frm_Main的Load事件中写:
Frm_Login frm_login=new Frm_Login();
frm_login.showdialog();
这样就基本OK了; --------------------编程问答-------------------- 没听懂意思 但是我不知道是不是这个意思

主窗.hidden
其他窗.show
--------------------编程问答-------------------- 嗯,只能登录窗体隐藏,主窗体显示这样了 --------------------编程问答--------------------
引用楼主 wrf617106268 的回复:
假设登入窗体Frm_Login;主窗体Frm_Main;
在program里面写:Application.Run(new Frm_Main());
接着在Frm_Main的Load事件中写:
Frm_Login frm_login=new Frm_Login();
frm_login.showdialog();
这样就基本OK了;
代码有问题?? --------------------编程问答-------------------- Form ff=new Form()
ff.show();
this.close() --------------------编程问答--------------------  自问自答 --------------------编程问答-------------------- [Quote=引用 3 楼 xuexiaodong2009 的回复:]
引用楼主 wrf617106268 的回复:
假设登入窗体Frm_Login;主窗体Frm_Main;
在program里面写:Application.Run(new Frm_Main());
接着在Frm_Main的Load事件中写:
Frm_Login frm_login=new Frm_Login();
frm_login.showdialog();
这样就基本OK了;
代码有…
代码是没问题的,在登入了Frm_Login后,你可以关闭这个窗体而不是隐藏,不会影响整个的程序进程 --------------------编程问答-------------------- 我这个不是提问,是自己写代码的一些方法,我自己实验通过了,只是有些细节没说出来,
只是表达这么一种思路; --------------------编程问答-------------------- 路过   学习 --------------------编程问答-------------------- Frm_Main frm=new Frm_Main();
frm.showdialog();
this.visable=false; --------------------编程问答-------------------- 呵呵,恩,先运行主窗体,让主窗体隐藏,在主窗体中show第一个窗体!当第一个窗体关闭后,就让主窗体显示出来吧! --------------------编程问答-------------------- 学习! --------------------编程问答-------------------- 我常用的一种解决方案。。。如下
下面的代码是现敲的所以并不周密。。。。


  static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            Application.Run(new MyApp());
        }



    }


    public class MyApp : ApplicationContext
    {
        public MyApp()
        {
            Form2 f = new Form2();
            f.Show();
        }

        public class Form2 : Form
        { 
            //....代码。。。
            protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
            {
                Form3 f3 = new Form3();
                base.OnClosing(e);
            }
        }

        public class Form3 : Form
        { 
            //....代码。。。
        }

        protected override void ExitThreadCore()
        {
            base.ExitThreadCore();
        }
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
        }
    }



或许你会说为什么没Form1 因为这是我的一个程序,已经被占用了,我只是添加了代码 给你看的,注释掉的请不要使用。。。。 --------------------编程问答--------------------

 protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
            {
                Form3 f3 = new Form3();

                f3.Show();

                base.OnClosing(e);
            }


不好意思漏掉了一点。。。。请加上 --------------------编程问答-------------------- http://blog.csdn.net/wuyazhe/article/details/5642431
new System.Threading.Thread((System.Threading.ThreadStart)delegate  
{  
    Application.Run(new Form());  
}).Start();  
this.Close();  
--------------------编程问答-------------------- 感谢wuyazhe,我一直在找用新建线程怎么做 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 14 楼 wuyazhe 的回复:
http://blog.csdn.net/wuyazhe/article/details/5642431
C# code
new System.Threading.Thread((System.Threading.ThreadStart)delegate  
{  
    Application.Run(new Form());  
}).Start();  
this.Close(); ……


经典之作。 --------------------编程问答-------------------- 如果你是需要弹出登录界面,你可以在program.cs中先弹出login界面,然后在跳出你的主界面
Frm_Login frm_login=new Frm_Login();
Application.Run(frmlogin1);
if (frm_login.DialogResult != DialogResult.OK)
    return;
//登录成功后
Application.Run(new Frm_Main());

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,