Создадим новое окно для регистрации пользователей в нашем приложении.
Создание формы регистрации
Создайте новый файл для окна регистрации:
- Щёлкните правой кнопкой мыши по проекту.
- Выберите «Добавить» -> «Новая форма Windows Forms».
- Назовите форму, например, RegisterForm.
Новая форма будет создана быстрее, чем первая, если скопировать стили с формы авторизации.
Копирование элементов интерфейса
- Откройте форму Login.Form.
- Выделите все элементы формы (можно выделить все элементы, зажав Ctrl и кликая на них, или используя Ctrl+A).
- Скопируйте выделенные элементы (Ctrl+C).
- Откройте RegisterForm и вставьте скопированные элементы (Ctrl+V).
Теперь RegisterForm выглядит похоже на LoginForm.
Изменение элементов формы регистрации
- Выделите всю форму и в свойстве FormBorderStyle установите значение None.
- Измените заголовок формы с «Авторизация» на «Регистрация».
- Перенесите кнопку в более удобное место.
- Добавьте два поля для ввода имени и фамилии, разместив их рядом.
- Измените текст на кнопке с «Войти» на «Зарегистрироваться».
- Подкорректируйте размер и положение кнопки.
Добавление функциональности и обработка событий
Для кнопки «Закрыть»:
- Дважды кликните по кнопке «Закрыть». Это добавит функцию CloseButton_Click.
- Скопируйте код функции CloseButton_Click из Login.Form в RegisterForm. Функции имеют одинаковое имя, так как кнопки и их действие идентичны в обеих формах.
Теперь кнопка «Закрыть» будет работать. Для возможности перетаскивания формы скопируйте обработчики событий мыши: MouseEnter, MouseLeave, MouseMove и MouseDown из Login.Form в RegisterForm. Для удобства создайте эти события на форме дважды кликнув на них.
Реализация подсказок для полей ввода
В WinForms нет встроенных placeholder’ов. Реализуем их с помощью обработки событий:
- Переименуйте поля TextBox1 и TextBox2 в userNameField и userSurnameField соответственно.
- В обработчике события Load формы RegisterForm добавьте текст-подсказку:
userNameField.Text = "Введите имя";
userSurnameField.Text = "Введите фамилию";
userNameField.ForeColor = System.Drawing.Color.Gray;
userSurnameField.ForeColor = System.Drawing.Color.Gray;
- В обработчике события Enter:
if (userNameField.Text == "Введите имя")
{
userNameField.Text = "";
userNameField.ForeColor = System.Drawing.Color.Black;
}
- В обработчике события Leave:
if (userNameField.Text == "")
{
userNameField.Text = "Введите имя";
userNameField.ForeColor = System.Drawing.Color.Gray;
}
Аналогично реализуйте для userSurnameField. Дополнительные поля – домашнее задание.
Тестирование
Запустите приложение и протестируйте функциональность формы регистрации.
В этом уроке мы создали функциональное окно регистрации пользователя, добавив обработку событий и реализовав пользовательские подсказки для полей ввода.