大家看看这段代码有问题吗?我创建了一个登陆的窗体,这段代码是登陆按钮的.密码和登陆用户正确,我按了登陆按钮后,登陆窗体消失了,但没有显示另一个窗体,是代码错了吗?我是新手!!!!! private void button1_Click_1(object sender, EventArgs e)
        {
            username = this.comboBox1.Text.ToString().Trim();
            for (int i = 0; i < dtable.Rows.Count; i++)
            {
                this.myrow = dtable.Rows[i];
                if (myrow[0].ToString().Trim() == username && myrow[2].ToString().Trim() == this.textBox1.Text.ToString().Trim())
                {
                    //  blogin = true;
                    this.Close();
                    mainfrm  mainform = new mainfrm();
                    mainform.Show();
                    return;
                }
            }
            MessageBox.Show("输入的密码错误,请重新输入!");
            return;
        }

解决方案 »

  1.   

    this.close()表示你的这个窗口结束了,如果这个窗口是Application.run中的窗口,那么整个程序就结束了,所以你之后的窗口就不会显示出来,你应该在应用程序的Main()函数里面试试
      

  2.   

    去掉 mainfrm  mainform = new mainfrm(); 看看
      

  3.   

    mainfrm  mainform = new mainfrm();
    mainform.Show();
    你的mainform是在登陆窗口里面申明的,登陆窗口消失的时候,内部申明也就dispose掉了;一般的做法是登陆窗口如果密码和帐号正确,dialog的返回值是OK,然后在project的main函数中判断登陆函数的返回值是不是DialogResult.OK,如果是,然后再
    mainfrm  mainform = new mainfrm();
    mainform.Show();
      

  4.   

    这样呢:
    mainfrm  mainform = new mainfrm();
    mainform.Show();
    this.Close();
      

  5.   

    我试过在MAIN函数里面运行,但根本就不显示登陆对话框.
    我想问一下,我有2个窗体,FORM1,FORM2,先建FORM1,每次调试都是先启动FORM1,如何设置先启动FORM2呢?我用的是VS2005
      

  6.   

    最简单的做法:你将FORM1启动后再隐藏,然后先调出FORM2三,返回OK后就关闭FORM2,显示FORM1.