0

我有comboBox,用户可以在其中选择sql 数据库视图,例如basicView、fullView 等。其中一个视图是adminView。当用户选择 adminView 时,新表单 (form2) 正在打开,他必须登录。在 form1 中,我有showDB(string command)在 dgv 中显示视图的方法。但是在form2中登录后如何执行此方法?任何的想法?

4

2 回答 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 回答