Я создаю окно пароля с помощью Windows Form Designer, за исключением того, что контекст немного отличается. Есть несколько полей ввода, и одно из них защищено паролем. В верхней части главного окна есть кнопка «Изменить», которая порождает окно нового пароля. Пользователь вводит попытку пароля и нажимает «ОК». Мне нужен способ, чтобы кнопка OK проверила пароль, а затем отправила DialogResult.OK
обратно в домашнее окно или отобразила «неверный пароль», если попытка неверна. Это означает, что я не могу изначально установить DialogResult
на DialogResult.OK
, поэтому я не уверен, как это сделать.
В настоящее время я устанавливаю DialogResult
на DialogResult.OK
в функции события клика, но, очевидно, это устанавливает его для следующего клика, а не для текущего, поэтому пользователь должен дважды нажать кнопку ОК.
private void buttonOK_Click(object sender, EventArgs e)
{
string passwordAttempt = textBoxPassword.Text;
if( passwordAttempt.CompareTo("pass") == 0 )
{
this.buttonOK.DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
Одним из возможных решений является запуск второго события через код (не знаю, как это сделать). Или, в качестве альтернативы, есть ли лучший способ сделать окна паролей, о которых я не думаю в этой ситуации?