我将入口点设置在主窗体中,然后运行,但是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;
}
}所以在关闭的时候也就关闭了线程,整个程序就退出了。
请问,如何写,这两者的关系才能比较完美啊?
谢谢啊
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;
}
}所以在关闭的时候也就关闭了线程,整个程序就退出了。
请问,如何写,这两者的关系才能比较完美啊?
谢谢啊
{
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;
}
}
然后在这个方法中启动登陆窗口
验证通过的话就close登陆窗口
显示主窗体
Application.Run(new Form1());
这里是用到了 XP 主题,但是存在一个问题,那就是 用ShowDialog 显示一个窗体,关闭,再打开的时候容易出错,解决的办法是
Application.EnableVisualStyles();
Application.DoEvents();
Application.Run(new Form1());
Form2 frmLogin = new Form2();
frmLogin.ShowDialog(this);
}这样好像就可以先出现“运行时主窗体隐藏,显示登录窗体,登录成功后关闭登录窗体,显示主窗“private void button2 _Click(........)
{
条件。
else{
thiis.DialogResult = DialogResult.ok;
}
}
这样可不可以
usepc
FORM1里面的
static void Main()
{
}
应该写在那里啊?
在
public BCMainForm()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
里面写么?
能不能将你写的那个类里面的代码贴出来给我借鉴么?感觉你的那个方法比较的好呢,但不好意思的是我的水平实在有限,还不能马上的反应,谢谢。
参考下面的讨论:http://community.csdn.net/Expert/TopicView.asp?id=4397826
http://community.csdn.net/Expert/topic/4398/4398390.xml?temp=.7976038