目标:C#做一个炫酷的登录界面
Q1:C#多个窗口时,窗口的执行顺序。
AN: 默认的Main函数是:函数在Program.cs里
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmMain()); //frmMain()是自己命名的窗口名称
}
关键的是Application.Run(new frmMain());这一句,如果Run函数里是主窗口,则就要另外想办法在主窗口显示之前让用户登录;如果Run函数里创建的是登录窗口,则登录窗口完成其登录工作之后,就只能隐藏,而不能关闭,否则整个应用程序就结束了。
两个解决方案:
1)Application.Run(new frmMain());函数里创建主窗口,在主窗口加载后,显示之前使之隐藏并显示登录窗口,如果登录成功,则关闭登录窗口,显示主窗口;如果登录失败,则结束应用程序。这样处理有一个小问题,就是要无论登录是否成功,实际都要加载主窗口的。好处是不用修改Main函数,对一些用户来说,可能更好控制一些。
2)修改Main函数,使之在Application.Run(new frmMain());之前进行登录验证,登录成功则正常运行,登录失败则结束应用程序。大体过程如下:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin login = new frmLogin();
login.ShowDialog(); // 注意这个地方只能是ShowDialog,而不能是Show
if(login.HasLogin) // 判断是否登录成功
{
login.Close();
Application.Run(new frmMain());
}
else
{
Application.Exit();
}
}
!!!!frmLogin login = new frmLogin();//中的 frmLogin是你所命名的登录窗口的文件名。
!!!!!第二种方法里面的函数报错,就换用: if (logi.ShowDialog() == DialogResult.OK)
这样做的好处是在登录失败时,直接关闭应用程序,而无需加载主窗口
以上的操作只是能够让程序执行的时候先看到登录界面,并不能实现登录和页面跳转。
Q2:实现成功登录
AN:button按钮调用函数
private void button1_Click(object sender, EventArgs e)
{
String name = this.textBox1.Text;
String Password = this.textBox2.Text;
if (name.Equals("zjubme207") && Password.Equals("123456"))
{
MessageBox.Show("登录成功");
}
else
{
MessageBox.Show("登录失败!");
}
}
Q2:如何实现成功登录后进入主界面?
下一个博客里面写!