在Main中,Application.Run(new FrmMain()).在主窗口的Load事件中,产生FrmLogin.关闭FrmLogin以后,主窗体就出现了。

解决方案 »

  1.   

    在主窗体的OnLoad()事件中private void FrmMain_Load(object sender, System.EventArgs e)
    {
    FrmLogin frm=new FrmLogin();
    frm.ShowDialog();
    }
    这样你处理完登录窗口后,住窗体才显示
      

  2.   

    班门斧大哥:
    你的(在主窗口的Load事件中,产生FrmLogin.)是不是FrmLogin frm =new FrmLogin()啊?
    然后我用frm.close()还是没有能关掉原来的FrmLogin啊
      

  3.   

    freeboy0002(我很笨)你说的我试过了,需要加一个变量来判断,要不然会重复出现登录窗口的
      

  4.   

    我这有个以前给人做的Demo,大致如下:
    public enum IdentityState
    {
    NotLogin=0,
    Common,
    Middle,
    Super
    //Set user's other identities here
    }//Userinfo is to record user's info
    public struct UserInfo
    {
    public static string Username="";//Init value
    public static string Password="";
    public static int nIdentity=0;//0:
    }/// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main() 
    {
    //Show login window
    frmLogin myLogin=new frmLogin();
    myLogin.ShowDialog();//Here change your state and save info if(UserInfo.nIdentity!=(int)IdentityState.NotLogin)//Loggin successfully
    {
    //Show main window
    frmMain myMain=new frmMain();
    myMain.ShowDialog();
    }
    }
      

  5.   

    愚翁:我看到你在另外一个帖子里面的回复注意:每次创建子窗体的时候,必须加上
    this.AddOwnedForm(mySubForm); 
    mySubForm.Owner = this;
    这两句。否则,上面方法无效。你那两句话是在加在什么位置上面的???
      

  6.   

    private void Main_Load(object sender, System.EventArgs e)
    {
    FrmLogin f1=new FrmLogin();
    f1.ShowDialog();
    if(pass)
    { }
    else
    {
    this.Dispose();
    return;
    }
    }
    程序先启动主窗体如果pass=true;
    则主窗体打开,
    否则主窗体关闭,程序关闭。
    -------------------------------
    http://www.cmsyp.com/pgfan
      

  7.   

    声明几个static变量:
    public static string username=null;
    在主窗体的main函数中,把登录窗体显示为模式窗体,在登录成功后给username赋值,
    在main函数中检测username的值,如果为null就return了,在程序中也可以访问username