我正在使用C#(WPF)和MySQL创建数据库应用程序。我的问题是某些表单,例如允许用户删除和/或重新创建表的表单应该需要密码(可以是硬编码的)。
我已经尝试过几件事并尽可能地研究,但我还没有完美的解决方案。到目前为止,我最接近的是创建一个名为“SecurityCheck”的表单,它在调用时接受一个字符串,这将是目标表单。然后,如果用户输入正确的密码,安全检查表单将使用switch语句来决定打开哪个表单。然而,理想情况下,我希望将表单作为争论传递,而不需要切换语句?
此方法的另一个问题是我无法弄清楚如何将目标表单所有者设置为原始调用表单。
理想情况下,安全检查表格将作为我希望打开的任何两种表单之间的通用桥梁,但我对C#的有限知识使我感到沮丧。
提前谢谢你。
答案 0 :(得分:0)
如果我知道您的意思是正确的,那么在显示指定的表单之前,您需要这样的方法来打开securityCheck表单:
private void OpenFormWithAuthentication(Form destination)
{
SecurityCheck secForm = new SecurityCheck();
secForm.ShowDialog();
if(secForm.DialogResult == DialogResult.Ok)
{
destination.Show();
}
}
在SecurityCheck表单中,您应该为表单结果指定适当的值:
/* SecurityCheck form*/
if(Authenticate(username,password))
this.DialogResult = DialogResult.Ok;
else
this.DialogResult = DialogResult.Cancel;