Отображение простого пароля перед запуском программы на C#
Вы можете подумать, что программа может начинаться с формы пароля, а затем отображать ее основную форму, если пользователь вводит правильный пароль. К сожалению, когда начальная форма пароля закрывается, она завершает все приложение.
Лучший подход - сделать основную форму формой запуска. Это обработчик событий Load отображает форму пароля. Если пользователь успешно вводит пароль, программа будет работать как обычно. Если пользователь не может ввести пароль, основная форма закрывается и программа заканчивается.
В следующем коде показан обработчик события Load основной формы.
// Отображение формы пароля. private void Form1_Load(object sender, EventArgs e) { // Отображение формы пароля. PasswordForm frm = new PasswordForm(); if (frm.ShowDialog() != DialogResult.OK) { // Пользователь отменен. this.Close(); } // В противном случае продолжаем показывать эту форму. }
Этот код создает PasswordForm и отображает его, вызывая его метод ShowDialog. Вызов ShowDialog возвращает OK или Отмена в зависимости от того, нажал ли пользователь кнопку «ОК» или «Отмена».
В диалоговом окне пароля есть TextBox с PasswordChar, установленным в X, чтобы вы не могли видеть, что пользователь вводит. Протекс CancelButton формы установлен на кнопку «Отмена». Если пользователь нажимает на эту кнопку, он автоматически устанавливает свойство DialogResult формы Cancel и скрывает форму.
Если пользователь нажимает кнопку OK, выполняется следующий код.
// Проверка пароля. private void btnOk_Click(object sender, EventArgs e) { if (txtPassword.Text == "Secret") { // Пароль в порядке. this.DialogResult = DialogResult.OK; } else { // Недопустимый пароль. txtPassword.Clear(); MessageBox.Show("Inivalid password."); txtPassword.Focus(); } }
Этот код просто сравнивает введенный пользователем пароль с строкой «Секрет». Если пароль совпадает, код устанавливает свойство DialogResult формы пароля Если пароль недействителен, программа очищает пароль TextBox и отображает сообщение об ошибке, чтобы пользователь мог попробовать еще раз.