gpt4 book ai didi

c# - 如何创建winform登录对话框并保持循环

转载 作者:行者123 更新时间:2023-11-30 13:13:26 25 4
gpt4 key购买 nike

创建一个登录表单,如果凭据正确,该登录表单将进入主表单。这是基本的伪代码:

ShowLoginForm()

if (DialogResult == OK)
CheckCredentials();
if (credentials == VALID)
ShowMainForm();
else
LoopBackAndShowLoginFormAgain(); //repeat process...
else
CloseLoginForm();

但是,我对 WinForms 还比较陌生,还在摸索中。我试图决定将我的循环放在哪里(Main() 或 LoginForm 中的某处)。我应该在哪里检查凭据?这是我目前所拥有的:

static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

LoginForm loginForm = new LoginForm();
if (loginForm.ShowDialog() == DialogResult.OK)
{
Application.Run(new AutoSignerForm());
}
}

我不想退出并重复打开登录表单(我在这里寻找一些效率,所以我想使用相同的登录对话框)。有任何指示、技巧或想法吗?

最佳答案

我会做以下事情:

  • 在 Program.cs 中将 loginForm 显示为对话框

    LoginForm login_form = new LoginForm();
    if(login_form.ShowDialog() == DialogResult.OK) {
    Application.Run(new MainForm());
    }
  • 在 LoginDialog 中,处理“登录”按钮(或任何名称)上的点击事件

    // replace with the actual login
    if(textBoxUsername.Text == "my user" && textBoxPassword.Text == "my pass") {
    // save the user has logged in somewhere
    // set the dialog result to ok
    this.DialogResult = DialogResult.OK;
    // close the dialog
    this.Close();
    } else {
    // login failed
    MessageBox.show("Login failed");
    // do not close the window
    }

现在,您将一直显示 LoginDialog,直到用户输入有效凭据或他放弃尝试并关闭应用程序。这样您将只有一个 LoginForm 实例,这将是一种很好的用户体验。此外,您可以确定 MainForm 不会在用户未成功登录的情况下进行初始化和显示。

关于c# - 如何创建winform登录对话框并保持循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11140852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com