[英]how to restrict form to load in winforms c#
我有两种形式,即frmLogin
和frmDash
。 我的用户名和密码保存在credentials.txt
文件中。 我的默认运行形式是frmLogin
。 现在我的问题是,当应用程序启动时,它会从credentials.txt
frmDash
检查用户名和密码,并直接显示frmDash
。 它可以正常工作,但问题是,使用frmDash
, frmLogin
也在后面打开。 如何解决呢?
我已经试过了(Form1是frmLogin):
private void Form1_Load(object sender, EventArgs e)
{
try
{
var credentialLines = File.ReadAllLines(Environment.CurrentDirectory + "\\credentials\\credentials.txt");
if (credentialLines.Any())
{
UserName_reLogin = credentialLines[0];
Password_reLogin = credentialLines[1];
if (LoginUser(Log_API, UserName_reLogin, Password_reLogin))
{
logIn_Status = "true";
GlolbalUtil.LogIn_Status = logIn_Status;
//this.Hide();
frmDash frmDash = new frmDash();
frmDash.Owner = this;
frmDash.Show();
txtUsername.Text = "";
txtPassword.Text = "";
//GlolbalUtil.accept_status = "1";
this.Enabled = false;
}
else
{
MessageBox.Show("Please Check Username and password");
}
}
else
{
this.Enabled = true;
}
}
catch
{
}
}
将您的登录逻辑移至Main函数中的Program.cs中,如下所示
var credentialLines = File.ReadAllLines(Environment.CurrentDirectory + "\\credentials\\credentials.txt");
if (credentialLines.Any()){
UserName_reLogin = credentialLines[0];
Password_reLogin = credentialLines[1];
if (LoginUser(Log_API, UserName_reLogin, Password_reLogin)){
Application.Run(new frmDash ());
}else{
Application.Run(new frmlogin());
}
}else
{
Application.Run(new frmlogin());
}
首先,您应该在打开登录表单之前检查凭据是否存在。
但是无论如何要隐藏表单都使用this.Hide();
隐藏表格
private void FrmLogin_Shown(object sender, EventArgs e)
{
if (GlolbalUtil.authenticate == "true")
{
this.Hide();
}
else if(GlolbalUtil.authenticate == "false")
{
this.Show();
}
}
GlobalUtil.authenticate
是用于检查用户是否登录的全局变量。 如果用户登录即表示GlobalUtil.authenticate=="true"
,则只有frmLogin
将hide
否则show
。 工作完美。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.