我做了一个程序,里面有From1,From2,From3
From2是密码登陆框来的
点From1的一个button就打开From2
在From2里输入帐号密码之后,“对的话关闭From2打开From3”From2的“确定”button代码是这样的:
if (xxxxxxxxx)
       MessageBox.Show("帐号或密码错误!");
else
     {
        this.Close();        
        From3 myF3 = new From3();
        myF3.ShowDialog();
     }
问题是From3打开了,但是From2关闭不了,请问怎么解决?无论用show还是ShowDialog都是不行。帮帮我谢谢。

解决方案 »

  1.   

    <script language=JavaScript type=text/JavaScript>javascript:window.close();</script>
      

  2.   

    你应该在Form1里面打开Form3form2 f = new form2();
    if (f.ShowDialog() == Dialog.OK)
    {
    form3 f3 = new form3;
    f3.showdialog();
    }但是在Form2里面,密码正确之后,需要加上DialogResult=DialogResult.OK; 
      

  3.   

    From3由From2打开。。From2就是From3的父窗体。。From2显然不能被关闭。。
    你可以试着把From2给隐藏Hide了
    if (xxxxxxxxx)
          MessageBox.Show("帐号或密码错误!");
    else
        {
            this.Hide();       
            From3 myF3 = new From3();
            myF3.ShowDialog();
        } 
      

  4.   

    这个要跟在Form1的button的事件后面。Form2 myF2=new Form2();
    if(myF2.ShowDialog()==DialogResult.OK)
    {
            From3 myF3 = new From3(); 
            myF3.ShowDialog();
    }Form2的button事件
    if(XXX)
    {
    MessageBox.Show("帐号或密码错误!"); 
    return;
    }
    else
    {
    this.DialogResult=DialogResult.OK;
    }大概是这样,上面有些单词可能会写错
      

  5.   


    if (xxxxxxxxx)
          MessageBox.Show("帐号或密码错误!");
    else
        {
            this.Hide();       
            From3 myF3 = new From3();
            myF3.ShowDialog();
        } 
      

  6.   

    解决的办法是:        this.Close();        
            From3 myF3 = new From3(); 
            myF3.ShowDialog(); 改为:              
            From3 myF3 = new From3(); 
            myF3.Show(); 
     this.Close(); 
      

  7.   

    hide()
    或new 一个applciation因为你是第一个界面,所以不能close(),一关的话整个application都关了
      

  8.   

     From3 myF3 = new From3(); 
            myF3.Show(); 
      this.Close();