C#做的winform应用程序,实现功能:用户登陆。问题:     程序一运行,首先出现登陆界面,用户输入登录信息,我第一次正确输入之后,登陆界面消失后又立即显示出来,我第二次输入正确信息后,才可以成功跳转到系统主界面。
程序主要实现代码:
      登陆界面的登录按钮代码:  this.DialogResult = DialogResult.OK;
       Program.cs 的主要代码:  
       static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);            Form1 LogForm = new Form1();
            if (LogForm.ShowDialog() == DialogResult.OK)
            {
                Application.Run(new Form2());
            }
        }
不知道有哪位遇到过同样的问题? 可以帮我解答一下。 谢了

解决方案 »

  1.   

    没遇到过
    难道是Form2中还有对FORM1的初始化??
      

  2.   

     Form1 LogForm = new Form1(); 
    if (LogForm.ShowDialog() == DialogResult.OK) 

        Application.Run(new Form2()); 

    你为什么要这样写呢?if里面的已经弹出登陆对话框了第一次显示,在Application.Run()里面又一次实例化的显示能不弹出两次吗?
      

  3.   

    你确定没有在Form2里显示Form1吗?只看这些代码应该是正常的。
      

  4.   

    补充 我建议你不需要开始Form1 LogForm=new Form1();if(.....)这些 直接调用Application.Run()即可
      

  5.   

    看你贴的代码没问题,最有可能的是你在  Form1 LogForm = new Form1(); 下面有代码让LogForm窗体show或ShowDialog,然后接着执行if条件里的ShowDialog这样就等于你show了两次
      

  6.   

    FORM1 为主窗体,创建FORM2 作为登录窗体
    在FORM1 的load 事件中加入如下代码:
    Form2 fm2 = new Form2();
    fm2.ShowDialog();在Form2的登录窗体Click事件中加入代码:
    if()//if条件判断文本框内的用户和密码是否在数据表中有对应的记录
    {
    this.close();//如果存在对应记录,则关闭该窗体
    }
    else
    {
    MessageBox.Show("用户名或密码错误","提示")//不存在记录则报错
    }
      

  7.   

    我去仔细检查了,是我的失误,在Form2的load事件当中我第二次调用了Form1!!  所以才会有2次登陆信息的输入~~
    个人粗心~~
    谢谢各位热心帮忙。3楼的,注意你说的话!!!再次谢谢各位。分少哦~~