FrmB b= new FrmB();
b.ShowDialog();
this.Close();
这是我的一个界面FrmA,里面的一个事件
实例了界面FrmB,并且调用它的ShowDialog方法,虽然打开了,但是FrmA依然存在,并没有Close掉
而且为什么我使用Show方法的话,FrmB根本就没有显示出来,只是闪了一下,然后就不见了
我要的效果是,当FrmB显示了后,FrmA自动关闭(不是隐藏)
高手请指点迷津~~

解决方案 »

  1.   

    FrmB b= new FrmB();
    b.Show();
    this.Close();前提是A不能为启动窗体
      

  2.   

    frm.ShowDialog();
    if (frm.DialogResult == DialogResult.OK)

                
    }
      

  3.   

    说错了
    启动窗体不能Close 可以用Hide 隐藏
      

  4.   

    Hide?
    this.Hide();这样写对吗
    隐藏后如果要重新将它显示出来应该怎么写?
      

  5.   


    那就
    Form.Show()呗。。
      

  6.   

    这个要涉及到一个线程问题。
    启动一个应用程序就相当于在计算机上启动了一个进程。
    进程开启一个窗口:FrmA  在FrmA中有打开了一个窗体FrmB。也就是说FrmB是依赖于FrmA存在的。
    假如FrmA关闭了,那么整个进程也就关闭了。FrmB也就不存在了。
      

  7.   


    那Hide跟Visible属性还不一样吗
      

  8.   

    Visible 时隐藏不掉的.. 
      

  9.   

    hide、show与visible的false、true是一样的,只是visible是属性,hide、show是方法启动窗体不能关闭,否则整个程序就啊了,但可以隐藏
      

  10.   

    今天有个类似问题的帖子,你可以去看看。
    http://topic.csdn.net/u/20091201/10/33788245-411f-45b4-9296-2ee16db3c770.html?78170
      

  11.   


    然后ShowDialog和show又有啥区别
      

  12.   

    //Chang Program.cs startpoint:Application.Run(new FormB);//Code in FormB construct
    public FormB()
    {
     FormA formA=new FormA();//The FormA after 5s Will be closed,And the FormB Thread will Go on , and show FormB
     formA.ShowDialog();
    }//Code in FormA construct
    public FormA()
    {
     //after 5s auto close
     Thread.Sleep(5000);
     this.Close();
    }
      

  13.   

    FrmB b= new FrmB();
    b.ShowDialog();
    this.Close();你这是什么,你这不是相当于定义了b,让其显示之后再给关了么,你出发点就是错的
    具体我没试,只是告诉你一个思路,你试试
    this.Close();
    FrmB b= new FrmB();
    b.ShowDialog();这样,应该可以了