Создать форму входа - PullRequest
       1

Создать форму входа

2 голосов
/ 09 августа 2010

У меня есть форма, для которой я хочу обеспечить некоторую безопасность, но до этого момента я создал только одну форму, которая выполняет всю мою работу.Я хочу создать новую форму, которая появляется перед моей основной формой прямо при запуске приложения.Затем проверяет пароль, введенный для базы данных MySQL.У меня есть все, что связано с MySQL, но я удивляюсь, как сделать, чтобы перед моей основной формой всплывала другая форма, которая отключает основную форму, ждет подтверждения формы пароля, а затем исчезает после проверки формы и позволяет пользователю выполнятьих работа.Мне также нужно перенести информацию о проверенном пользователе обратно в мою основную форму.

Ответы [ 3 ]

7 голосов
/ 09 августа 2010

Вы можете создать новую форму и затем использовать функцию ShowDialog .Если вы показываете форму из основной формы, она будет отображаться модально.

Создайте ее в стиле входа в систему и закройте форму, если пользователь прошел аутентификацию, или покажите ошибку, если имя пользователя и пароль неверны.

От MSDN:

public void ShowMyDialogBox()
{
   Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }
   testDialog.Dispose();
}
1 голос
/ 21 августа 2010

Я предпочитаю использовать ApplicationContext для такого типа входа в форму <-> поведение переключения формы оболочки.

Ваш основной метод:

public static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new MyFancyContext());
}

И реализация для MyFancyContext:

public class MyFancyContext : ApplicationContext
{
    private LogOnForm logOnForm;

    private ShellForm shellForm;

    public MyFancyContext()
    {
        this.logOnForm = new LogOnForm();
        this.MainForm = this.logOnForm;
    }

    protected override void OnMainFormClosed(object sender, EventArgs e)
    {
        if (this.MainForm == this.logOnForm
            && this.logOnForm.DialogResult == DialogResult.OK)
        {
            // Assume the log on form validated credentials
            this.shellForm = new ShellForm();
            this.MainForm = this.shellForm;
            this.MainForm.Show();  
        }
        else
        {
            // No substitution, so context will stop and app will close
            base.OnMainFormClosed(sender, e);
        }
    }
}

MainForm - это форма, которая в настоящее время принимает сообщения.

Преимущество этого типа настройки заключается в том, что если вы хотите сделать такие вещи, как скрыть форму оболочки после некоторого простоя и заново отобразить форму входа в систему, у нас есть один класс, где эта функциональность имеет место.

0 голосов
/ 09 августа 2010

Вы можете вызвать showdialog (loginform) из конструктора главной формы и вернуть true в случае успеха или изменить запуск для формы входа до загрузки основной формы.Показывать диалог является модальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...