0

ユーザーがsqlデータベースビュー、たとえばbasicView、fullViewなどを選択できるコンボボックスがあります。ビューの1つはadminViewです。ユーザーが adminView を選択すると、新しいフォーム (form2) が開き、ログインする必要があります。form1 にはshowDB(string command)、dgv で View を表示するメソッドがあります。しかし、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 に答える