我正在使用C#使用Windows窗体应用程序。我创建了一个对话框,要求用户输入用户名和密码等登录详细信息。使用If-else语句,如果登录详细信息匹配,则会出现一个表示“成功”的消息框,对话框将自动关闭。这可以。但是,如果我输入错误的登录详细信息,我会在else语句中显示一个消息框,说明“输入了错误的详细信息”。但是,当我关闭该消息框时,对话框消失。我不希望这种情况发生。我希望对话框保持在视图中,以便用户再次输入正确的详细信息。是否有一些代码行我应该输入以避免关闭对话框?
答案 0 :(得分:2)
我建议您创建一个新表单,然后将其显示为对话框:
1)创建新表格
2)将Form的MinimizeButton设置为false
3)将Form的MaximizeButton设置为false
4)添加组件:1x文本字段,2x按钮(确定按钮和取消按钮)
5)将Ok按钮的DialogResult设置为:OK
6)将取消按钮的DialogResult设置为:取消
7)添加一个公共方法:public string GetText(){return textbox.text};
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()...”替换为“while ...”
注意:代码untestet
注意2:请确保您的验证逻辑是安全的。有经验的用户可以反编译您的应用程序以获得验证逻辑
希望有帮助吗?亲切的问候
答案 1 :(得分:0)
检查FormClosing事件,并检查事件。编写一些代码来检查事件,并阻止表单关闭,如果它来自表单中包含的按钮以外的任何内容。