菜鸟刚开始工作 写公司一个软件分为三个窗口 A初始化窗口 B登陆窗口 C程序主窗口
A初始化窗口结束后 同时显示B登陆窗口
在A窗口中为了同时显示A跟B窗口使用了
Login lg = new Login();
this.AddOwenForm(Login);
Login.Show();在B窗口中 密码验证通过后
this.Dispos()
MainTestForm MTForm = new MainTestForm();
MTForm.ShowDialog();这个时候只关闭了B窗口 可是A窗口跟C窗口开始同时存在
如果将A窗口Close后 C窗口也没了  请问如何解决这个问题? 期待高手解答!!!

解决方案 »

  1.   

    因为你把A窗口做了程序主窗口。你应该在C窗体的代码里show出A和B,或者在PROGRAM.cs里show出A和B。按照你的方法,做改动也可以。a.Hide();
      

  2.   

    初始化结束后,可以将A窗体隐藏
    A的是用来做起始LOGO的吧
      

  3.   

    对的 A是LOGO 可以我把启动application.run()那里改成了C窗口结果如果B窗口登陆错误了以后 还是照样打开了C窗口 A窗口中的close()全都不能用了。无法关闭A窗口
      

  4.   

    如果用Hide()方法 请问如何在C窗口中调用A.Hide呢?
      

  5.   

    如果你在程序文件里写着
    Run(A窗口)
    那A窗口就是程序的主窗口,程序运行依赖于A窗口进行消息循环.销毁了A窗口就结束程序了.对于你改动了程序主窗口为C以后的那个情况需要一个值,来告诉C窗口是否用户登录成功了,如果成功,C窗口正常显示,否则就关闭程序.做个标志值就O了
      

  6.   


    如果A不是主窗口的话,就close也没关系.确实想Hide,在A的处理程序里调用this.Hide也一样可以.
      

  7.   

    - -b
    我改成C窗口是程序主窗口以后在A窗口加入了点判断语句
    if(!File.Exits(GlobleValue.DataBasePath)\\检查数据库文件是否存在
    {
        Close();
    }但是不存在的时候 这个Close根本没反应了...如果我现在想在C中关闭A窗口 该怎么操作呢? C窗口置一个标志位 让A窗口自己判断么?
      

  8.   

    namespace HelloCsharp
    {
        class MyApplicationContext : ApplicationContext
        {
            public MyApplicationContext()
            {
                new Form1().Show();
            }    }    static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                            Application.Run(new MyApplicationContext());
            }
        }
        
             public partial class Form1 : Form
        {
            private void testBtn_Click(object sender, EventArgs e)
            {
                Form f = new Form();
                //this.Closed = null;
                f.Show();
                this.Close();
            }
        }
    }这个应该可以满足你的要求了!