在下新手,VS2008下登录对话框都不会写。
我的主对话框是MDI parents form,想在主对话框前显示一个登陆对话框。应该怎么写呢?
是在Program中Application.Run(new Mainform())之前写么?
我看网上写的Maiform中的Load里写不成啊~~
怎么写??泣求~~

解决方案 »

  1.   

    看看这篇文章,很不错的:
    http://blog.csdn.net/knight94/archive/2006/04/06/652394.aspx
      

  2.   

    Application.Run(new Mainform())-----中的Mainform可以改成你的登录框的名称,这个登陆框当然要你自己设计了,假如该登陆框的名称是Form1,那么就是Application.Run(new Form1());在Form1中执行验证是否成功的代码,然后登录成功之后再显示MaiForm窗体,也就是你的主对话框,然后关闭登陆框就行了。
      

  3.   


    对,这个我知道
    但有两个问题
    一、那我登陆窗口的信息怎么传送到主窗口,通过全局变量么?然后再new Mainform,然后mainform.show么?二、是不是有个主窗口的问题,application.run应该是主线程跑主程序吧?
      

  4.   


    恩 是很有用 基本实现了~~但是按照他的做法在引用ref类的时候报错 less accessible than method...你知道是什么原因么?
      

  5.   

    从已贴出的部分来看是类(或是什么)的可访问性低于方法,大概原因有:方法为public,类为internal或private,以及类似的情况。
      

  6.   

        [STAThread]
            static void Main() 
            {
                LogonFrm lfrm = new LogonFrm();
                MainFrm mfrm = new MainFrm();//将MainFrm实例化
                lfrm.mfrm = mfrm;//对与登录窗体的对象
                lfrm.ShowDialog();//显示登录窗体
              if( lfrm.DialogResult.Equals(DialogResult.OK))
                {
                    Application.Run(mfrm);
                }
            }private void button1_Click(object sender, System.EventArgs e)
            {
                if(user.Login())
                {
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
                
            }
      

  7.   

    是不是有个主窗口的问题,application.run应该是主线程跑主程序吧?我关注这个问题,好像不是的,那个run就是程序的入口吧,主窗口线程也就是应该是主线程了。
      

  8.   

    参考C# WinForm开发系列 - Form/Window