我将入口点设置在主窗体中,然后运行,但是hide()不能写在LOAD事件中,所以,我主窗体的程序是这么写在Activated事件中
private void BCMainForm_Activated(object sender, System.EventArgs e)
{
this.Hide();
Logon logon = new Logon();
logon.show();
}然后在登录窗体Logon中
private void Confirm_Click(object sender, System.EventArgs e)
{
           BCMainForm main = new BCMainForm();
  main.Show();
           this.Close();
}但这样写好像是重新打开了一个新窗体,而不是将隐藏的窗体显示。
并且,由于我还有个Closing时间
private void BCStartForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
DialogResult result=MessageBox.Show("确认要离开BarCode系统吗?",c.sysname+"BarCode系统提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question);  
if(result==DialogResult.Yes)  
{
e.Cancel=false;
Application.Exit();
}
else
{
e.Cancel=true; 
}
}所以在关闭的时候也就关闭了线程,整个程序就退出了。
请问,如何写,这两者的关系才能比较完美啊?
谢谢啊

解决方案 »

  1.   

    Form1:static void Main() 
    {
    Login lg=new Login();
    lg.ShowDialog();
    if(lg.IsLogin==true)
    {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
    }
    else
    {
    Application.ExitThread();
    }
    }Form2 (Login)private bool ISLOGIN=false;public bool IsLogin
    {
    get
    {
    return this.ISLOGIN;
    }
    }private void button1_Click(object sender, System.EventArgs e)
    {
                         if(textBox1.Text=="admin"&&textBox2.Text=="admin")
                           {
                              this.ISLOGIN=true;
                            }
                        }
      

  2.   

    我用的方法是建一个类,MAIN方法写在这个类里面,并设为程序入口点
    然后在这个方法中启动登陆窗口
    验证通过的话就close登陆窗口
    显示主窗体
      

  3.   

    Application.EnableVisualStyles();
    Application.Run(new Form1());
    这里是用到了 XP 主题,但是存在一个问题,那就是 用ShowDialog 显示一个窗体,关闭,再打开的时候容易出错,解决的办法是
    Application.EnableVisualStyles();
    Application.DoEvents();
    Application.Run(new Form1());
      

  4.   

    private void Form1_Load(obiect sender,System.EventArgs e){
                 Form2 frmLogin = new Form2();
               frmLogin.ShowDialog(this);
    }这样好像就可以先出现“运行时主窗体隐藏,显示登录窗体,登录成功后关闭登录窗体,显示主窗“private void button2 _Click(........)
    {
           条件。
           else{
           thiis.DialogResult = DialogResult.ok;
    }
    }
    这样可不可以
      

  5.   

    把登录窗体作为主窗体,登录ok后hide掉,new mainform,show出来
      

  6.   

    这个,若若的问一句啊:
     usepc
    FORM1里面的
    static void Main() 
    {
    }
    应该写在那里啊?

    public BCMainForm()
    {
    //
    // Windows 窗体设计器支持所必需的
    //
    InitializeComponent();

    //
    // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
    //
    }
    里面写么?
      

  7.   

    cc_net(念念红尘)
    能不能将你写的那个类里面的代码贴出来给我借鉴么?感觉你的那个方法比较的好呢,但不好意思的是我的水平实在有限,还不能马上的反应,谢谢。
      

  8.   

    类似问题都建议采用ApplicationContext,
    参考下面的讨论:http://community.csdn.net/Expert/TopicView.asp?id=4397826
    http://community.csdn.net/Expert/topic/4398/4398390.xml?temp=.7976038