使对话框停留在视图中

本文关键字:视图 停留在 对话框 | 更新日期: 2023-09-27 18:13:56

我使用c#使用windows窗体应用程序。我已经创建了一个对话框,请求用户提供登录详细信息,如用户名和密码。使用If-else语句,如果登录详情匹配,则出现成功提示框并自动关闭对话框。这很好。但是,如果我输入了错误的登录详细信息,我会在else语句中出现一个消息框,指出"输入了错误的详细信息"。但是,当我关闭该消息框时,对话框就消失了。我不希望这种事发生。我希望对话框保持在视图中,以便用户再次输入正确的详细信息。我是否应该输入一些代码行来避免对话框关闭?

使对话框停留在视图中

我建议您创建一个新表单,然后显示为对话框:

1)创建新表单
2)将窗体的MinimizeButton设置为false
3)设置窗体的MaximizeButton为false
4)添加组件:1x textfield, 2x button (ok button和cancel button)
5)设置Ok按钮的对话结果为:Ok
6)设置Cancel按钮的dialgresult为:Cancel
7)增加一个公共方法:公共字符串GetText(){返回文本框。
文本};8)设置文本框

的密码字符

在主表单中:

var dialogForm = new MyNewForm();
if (dialogForm.ShowDialog() != DialogResult.OK)
{
   Application.Exit()
}
else 
{
   var pw = dialogForm.GetText(); // string var pw stores the enterd pw now
   // validate your password here
   if (PasswordIsCorrect())
   {
      // some logic here
   } 
}

如果你想在循环中显示对话框,替换" If (dialogForm.ShowDialog()…With"while"…"

注意:代码untestet
注意2:请确保您的验证逻辑是安全的。经验丰富的用户可以反编译应用程序以获得验证逻辑

希望有帮助?亲切的问候

检查FormClosing事件,并检查该事件。编写一些代码来检查事件,并阻止表单关闭,如果它不是来自表单中包含的按钮。