我有comboBox,用户可以在其中选择sql 数据库视图,例如basicView、fullView 等。其中一个视图是adminView。当用户选择 adminView 时,新表单 (form2) 正在打开,他必须登录。在 form1 中,我有showDB(string command)
在 dgv 中显示视图的方法。但是在form2中登录后如何执行此方法?任何的想法?
问问题
289 次
2 回答
1
您应该将 form2 专用于登录过程,如果一切顺利,则返回 DialogResult.OK。
例如在 Form1 中:
using(Form2 frm = new Form2())
{
if(DialogResult.OK != frm.ShowDialog(this))
{
// Inform the user or simply exit from this method
}
}
// Login OK go on to show the info requested
在 Form2 中,您应该有一个 DialogResult 属性设置为 OK 的按钮。
当用户按下此按钮时,请按照您的逻辑检查给定的登录凭据。
如果凭据良好,则不执行任何操作,
否则表单将自行关闭
// give a message to the user
this.DialogResult = DialogResult.None;
并且 form2 将保持打开状态,让您的用户重试。
于 2012-04-07T12:41:07.840 回答
0
我会这样做:
form2 LoginForm = new form2();
bool LoggedOn = false;
if (LoginForm.ShowDialog() == DialogResult.OK)
{
LoggedOn = CheckLogin(LoginForm.UserName, LoginForm, Password);
}
LoginForm.Dispose();
if (LoggedOn)
showDB(command);
或者,如果您想在 form2 中处理登录,请执行以下操作:
form2 LoginForm = new form2();
bool LoggedOn = LoginForm.ShowDialog() == DialogResult.OK;
// login is handled in form2, return DialogResult.OK only if logon succeeded
LoginForm.Dispose();
if (LoggedOn)
showDB(command);
编辑
看起来史蒂夫先搞定了:-)
于 2012-04-07T12:43:53.717 回答