Как сделать форму регистрации в visual studio

Обновлено: 07.07.2024

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

В главной форме Form1 разместить:

  • элемент управления типа Label для вывода результата возврата из второстепенной формы;
  • элемент управления типа Button для вызова второстепенной формы.

Во второстепенной форме Form2 разместить:

  • элемент управления типа Label для вывода заголовка формы;
  • два элемента управления типа Button для обеспечения подтверждения или неподтверждения выбора (действия) во второстепенной форме.

Рис. 1. Схема взаимодействия между формами

Выполнение

1. Создать приложение типа Windows Forms Application

Запустить Microsoft Visual Studio 2010 . Пример создания нового приложения типа Windows Forms Application подробно описывается здесь.

Сохранить проект в произвольной папке.

Рис. 2. Главная форма приложения Form1

2. Разработка главной формы приложения

Из палитры элементов управления Toolbox выносим на форму:

  • элемент управления типа Button ;
  • элемент управления типа Label .

Рис. 3. Главная форма приложения после внесенных изменений

3. Создание второстепенной формы

Способ 1.
Для добавления формы №2 в проект этим способом нужно вызвать команду (рис. 4)

Рис. 5. Окно добавления новой формы к проекту

Способ 2.

Также новую форму можно добавить к проекту с помощью соответствующей команды из контекстного меню (рис. 7).
Последовательность действий следующая:

Рис. 7. Добавление новой формы из Solution Explorer

В результате откроется точно такое же окно как на рисунке 5.

4. Разработка второстепенной формы

Следующим шагом есть разработка второстепенной формы. Используя средства панели инструментов Toolbox создаем второстепенную форму Form2 как показано на рисунке 8. Такое построение формы соответствует условию задачи. Таким же образом, на Form2 имеем элементы управления label1 , butto1 , button2 .

Рис. 8. Второстепенная форма Form2

5. Программирование событий клика на кнопках OK и Cancel формы Form2

Программируем событие клика на кнопке OK . Подробный пример программирования события клика на кнопке OK описывается здесь.

6. Вызов формы Form2 из главной формы приложения

Программный код обработчика события будет иметь следующий вид:

В листинге, приведенном выше, сначала создается экземпляр класса типа Form2 . В операторе условного перехода if осуществляется вызов диалогового окна формы Form2 с помощью строки

Листинг всего программного кода формы Form1 следующий

7. Выполнение приложения

После выполненных действий можно выполнять приложение и исследовать его работу.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.

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

Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio 2022, если еще не сделали этого.

Создание проекта

Откройте Visual Studio 2017.

В верхней строке меню последовательно выберите Файл > Создать > Проект.

Рабочая нагрузка .NET Core в Visual Studio Installer

Запустите Visual Studio.

На начальном экране выберите Создать проект.

Просмотр окна "Создание проекта"

Рабочая нагрузка .NET Core в Visual Studio Installer

Затем нажмите кнопку Изменить в Visual Studio Installer. Вам может быть предложено сохранить результаты работы; в таком случае сделайте это. Выберите Продолжить, чтобы установить рабочую нагрузку. После этого вернитесь к шагу 2 в процедуре Создание проекта.

В поле Имя проекта окна Настроить новый проект введите HelloWorld. Затем нажмите Создать.

В окне "Настроить новый проект" назовите проект "HelloWorld"

Новый проект открывается в Visual Studio.

Запустите Visual Studio.

В окне запуска выберите Создание нового проекта.

Снимок экрана: окно "Создание проекта".

Снимок экрана: рабочая нагрузка .NET Core в Visual Studio Installer.

Затем нажмите кнопку Изменить в Visual Studio Installer. Вам может быть предложено сохранить результаты работы; в таком случае сделайте это. Выберите Продолжить, чтобы установить рабочую нагрузку. После этого вернитесь к шагу 2 в процедуре Создание проекта.

В поле Имя проекта окна Настроить новый проект введите HelloWorld. Затем выберите Создать.

Снимок экрана: "HelloWorld" в поле "Имя проекта" окна "Настроить новый проект".

Новый проект открывается в Visual Studio.

Создание приложения

Добавление кнопки на форму

Выберите Панель элементов, чтобы открыть всплывающее окно "Панель элементов".

Снимок экрана: выбор параметра "Панель элементов" для открытия окна панели элементов.

(Если параметр для всплывающего окна Панель элементов отсутствует, его можно открыть в строке меню. Для этого выберите Вид > Панель элементов. Либо нажмите клавиши CTRL+ALT+X.)

Выберите значок Закрепить, чтобы закрепить окно Панель элементов.

Снимок экрана: выбор значка "Закрепить" для закрепления окна панели элементов в среде IDE.

Выберите элемент управления Кнопка и перетащите его на форму.

В окне Свойства найдите Текст, измените имя с button1 на Click this и нажмите клавишу ВВОД.

(Если окно Свойства не отображается, его можно открыть в строке меню.) Для этого выберите Вид > Окно свойств. Или нажмите клавишу F4.)

В разделе Конструктор окна Свойства измените имя с button1 на btnClickThis и нажмите клавишу ВВОД.

Если список в окне Свойства был упорядочен по алфавиту, button1 появится в разделе Привязки данных.

Добавление метки на форму

Теперь, когда мы добавили элемент управления ''Кнопка'' для создания действия, давайте добавим элемент управления "Метка", куда можно отправлять текст.

Выберите элемент управления Метка в окне Панель элементов, а затем перетащите его на форму и расположите под кнопкой Нажмите это.

В разделе Конструктор или Привязки данных окна Свойства измените имя label1 на lblHelloWorld и нажмите клавишу ВВОД.

Добавление кода на форму

В окне Form1.cs [Проект] дважды щелкните кнопку Нажмите это, чтобы открыть окно Form1.cs.

(Кроме того, можно развернуть узел Form1.cs в обозревателе решений, а затем выбрать Form1.)

В окне Form1.cs после строки private void введите lblHelloWorld.Text = "Hello World!"; , как показано на следующем снимке экрана:

Запуск приложения

Снимок экрана: выбор кнопки "Запустить" для отладки и запуска приложения.

Будет выполнено несколько операций. В интегрированной среде разработки Visual Studio откроются окна Средства диагностики и Вывод. Кроме того, вне этой среды откроется диалоговое окно Form1. Оно будет содержать вашу кнопку Нажмите это и текст label1.

Снимок экрана: диалоговое окно "Form1" с текстом "label1".

Закройте диалоговое окно Form1, чтобы завершить работу приложения.

Создание приложения

Добавление кнопки на форму

Щелкните Панель элементов, чтобы открыть всплывающее окно "Панель элементов".

Выберите "Панель элементов", чтобы открыть окно "Панель элементов"

(Если параметр для всплывающего окна Панель элементов отсутствует, его можно открыть в строке меню. Для этого выберите Вид > Панель элементов. Либо нажмите клавиши CTRL+ALT+X.)

Щелкните значок Закрепить, чтобы закрепить окно Панель элементов.

Щелкните значок "Закрепить", чтобы закрепить окно "Панель элементов" в интегрированной среде разработки

Выберите элемент управления Кнопка и перетащите его на форму.

В окне Свойства найдите элемент Текст, измените имя с Button1 на Click this , а затем нажмите клавишу ВВОД.

(Если окно Свойства не отображается, его можно открыть в строке меню.) Для этого выберите Вид > Окно свойств. Или нажмите клавишу F4.)

В разделе Проектирование окна Свойства измените имя с Button1 на btnClickThis , а затем нажмите клавишу ВВОД.

Если список был упорядочен по алфавиту в окне Свойства, Button1 появится в разделе (DataBindings) .

Добавление метки на форму

Теперь, когда мы добавили элемент управления ''Кнопка'' для создания действия, давайте добавим элемент управления "Метка", куда можно отправлять текст.

Выберите элемент управления Метка в окне Панель элементов, а затем перетащите его на форму и расположите под кнопкой Нажмите это.

В разделе Проект или (DataBindings) окна Свойства измените имя Label1 на lblHelloWorld и нажмите клавишу ВВОД.

Добавление кода на форму

В окне Form1.cs [Проект] дважды щелкните кнопку Нажмите это, чтобы открыть окно Form1.cs.

(Кроме того, можно развернуть узел Form1.cs в обозревателе решений, а затем выбрать Form1.)

В окне Form1.cs после строки private void введите lblHelloWorld.Text = "Hello World!"; , как показано на следующем снимке экрана:

Добавление кода на форму

Запуск приложения

Будет выполнено несколько операций. В интегрированной среде разработки Visual Studio откроются окна Средства диагностики и Вывод. Кроме того, вне этой среды откроется диалоговое окно Form1. Оно будет содержать вашу кнопку Нажмите это и текст Label1.

Диалоговое окно Form1 с текстом Label1

Закройте диалоговое окно Form1, чтобы завершить работу приложения.

Следующие шаги

Для получения дополнительных сведений перейдите к следующему руководству:

Дмитрий Краснов


Дмитрий Краснов

Костя Дзюба

Владимир Серых

Александр Геворкян

Владимир, они еще освящены

Данил Кучин

Аркадий Шварцман


Аркадий Шварцман

Данил Кучин

Аркадий, в каком месте копия? В концепции исполнения кода на виртуальной софтверной платформе, а не на железе? ))) Чего тут не знать-то

Аркадий Шварцман


Аркадий Шварцман ответил Данилу

Данил Кучин

Аркадий, так в девяностые много кто рядился. Ты может быть помнишь как ходили в разноцветных лосинах дамы и зачесом на голове а ля кокошник.

Аркадий Шварцман


Аркадий Шварцман ответил Данилу

Дмитрий Бурков

ещё какая копия. даже я стал это замечать. не понимаю причём здесь пидop на скрине. вангую что у админа какие-то проблемы )

Андрей Пыстин

Константин Рогожин

Георгий Шакиров


Георгий Шакиров ответил Константину

Константин Рогожин

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

Don Juan


Don Juan ответил Константину

Константин Рогожин

Don, а че его мучать, норм язык, в разы лучше этого унылого легаси

Станислав Mechanik

Валерия Аникина


Валерия Аникина

Vlada Boyko


Vlada Boyko

Валерия Аникина


Валерия Аникина ответила Vlada

Николай Банников

Вадим Янаев

На пикче джавист или шарпист? У меня определённые опасения.

Ростислав Васин

Данил Кучин

Илья Тлеубаев

Сергей Швыгин

Макс Кустарёв

Вадим Янаев

Zarium Sheridan

Max, а че, си компилится в WebAssembly. Хотя конечно там чаще пользуют C++ или Rust. Ну теперь еще типа Blazor есть

Гаяз Галеев


Гаяз Галеев

Анастасия Михалочкина

Анастасия Михалочкина

Гаяз, *человек это не выбирает, тоже самое, что сказать «люди с зелеными глазами пропагандируют зеленые глаза»

Сергей Анисимов

Олег Баев

Копия. И по сути единственное что лучше - нормальная работа с исключениями.

Никита Глухов

Олег, дженерики по другому реализованы, паттерн матчинг есть в шарпах
Отличий куча в мелочах

Никита Замалютдинов


Никита Замалютдинов

Олег, что ты несешь? Где throws? К слову, даже в пайтоне принято описывать возможные исключения.

Никита Глухов

Никита, ну ты не прав, checked исключений нет в ни Kotlin, ни в Scala на той же JVM платформе, их большинство разрабов ненавидят. У тебя есть Javadoc в котором можно указать тегом throws, какие исключения могут быть выброшены, но это не значит, что нужно обязательно в коде на них реагировать (писать try/catch обработчик). Во-первых, сhecked исключения очень легко использовать абьюзно, когда очередной разработчик видит, что у него не компилируется из-за checked исключения и, недолго думая, пишет throws, делегируя обработку исключения в родительский вызов. В итоге на верхних уровнях код становится нечитаемым из-за уродливых try-catch не к месту. Во-вторых, чаще всего, в реальных кейсах, checked ошибка все равно не предполагает "recovery" логики, только завершение треда с выбросом стектрейса. Открой любой проект и увидишь, что в 90% случаев для checked исключений делают rethrow с оборачиванием в Runtime exception.

Никита Замалютдинов


Никита Замалютдинов ответил Никите

Никита Глухов

Никита, проблема в том, что checked исключение обязательно нужно так или иначе ловить, иначе некомпиляция. И это достаточно бесячно, потому что во многих случаях если в программе возникло исключение, она должна грохнуться/должен грохнуться тред, в котором возникло исключение. Это хорошая концепция (документирование исключений), плохо что компилятор обязывает их ловить, когда они мне н*х не сдались. Ну то есть, документирование исключений должно носить чисто информативный характер, чтобы разработчик имел в виду, что есть такое-то место, где может стрельнуть, чтобы было за что зацепиться взгляду при дебаге. Кстати, как раз из-за этой темы в Lombok @SneakyThrows запилили.

Никита Замалютдинов


Никита Замалютдинов ответил Никите

Никита, не знаю открою ли я тайню ЛЮБОЙ эксепшен нужно так или иначе ловить)
Во всех почти случаях, программа НЕ должна грохнуться или вывалить стектрейс юзеру) Делайте глобал хендлинг и все неищвестные ошибки перебрасывайте на код 500. Не понимаю, в упор в чем проблема.

Никита Глухов

Zarium Sheridan

Nikita, checked exception не взлетели. Даже большой джавист Боб Мартин в своем Clean Code так сказал: At the time, we thought that checked exceptions were a great idea; and yes, they can yield some benefit. However, it is clear now that they aren’t necessary for the production of robust software.

Александр Каданцев

назовите разницу между фоткой из поста и фоткой говна.
вот именно, говно уместнее и приятнее смотрится в ленте вк.

Леонид Зиновьев

Александр Каданцев

Леонид, тебе приятно смотреть на размалёванного пидора, который очевидно страдает псих. расстройством? если да, то это твоё личное дело, а в нашей культуре такое осуждается и вызывает омерзение.

Владимир Любимов


Владимир Любимов ответил Александру

Александр, то есть, если у человека небольшое психическое расстройство, то для вас он хуже говна? Интересное у вас отношение к больным людям, оригинальное. Непонятно только, почему вы решили что подобное отношение является культурной нормой современного общества.

Макс Кустарёв

Леонид Зиновьев

Александр, ты пишешь самые тупые и бессмысленные комментарии. Какой-то тупой вопрос задал, где поставил человеку диагноз, сам на него ответил, спрятался за какую-то культуру. Че ты несёшь?

Александр Каданцев

Леонид Зиновьев

Александр Каданцев

Леонид, тебе если пояснения нужны, так и спроси, а на оскорбления отвечать не стану.

Throatwobbler Mangrove


Throatwobbler Mangrove ответил Александру

То, что ты называешь своей культурой - представления о нормальности заложенные твоим окружением и родителями. Подобных культур очень много на земле, как и разных представлений о нормальности.
Культура человека, который допускает пикрелейтед ничем не хуже твоей.
Судишь исключительно с своей колокольни.

Пример работает так:
• мы создаем таблицу в базе данных с полями login , password

• при регистрации пользователя мы добавляем login , password в нашу таблицу базы данных.

• при логине (пользователь вводит login и password).
Получаем введенный login , password и ищем в базе данных.
Если нашли значит пользователя будем логинить (сохраняем его в cookie через Аутентификация форм FormsAuthentication.SetAuthCookie (model.Name, true);

• при logout мы удаляем пользовател из cookie



Установив mode="Forms" , мы тем самым подключаем аутентификацию форм. имя для куки-набора. Значение по умолчанию - ".ASPXAUTH" адрес для аутентификации пользователя. Значение по умолчанию - " Шаг 3. Добавляем библиотеку Entity Framework используя NuGet



Шаг 4. Создаем соединиение с Базой данных Microsoft SQL Server в файле Web.config Добавляем соединение <connectionStrings>. </connectionStrings> к Базе данных в файле Web.config
Новые добавленные строчки помеченные синим


Шаг 5. Добавим файл UserContext.cs в папку Models (класс User и класс UserContext для работы с Базой данных) Нажмем правой клавишей мыши на папку "Models" → Add → New Item



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

public class User
<
public int Id < get; set; >
public string Email < get; set; >
public string Password < get; set; >
public int Age < get; set; >
>
>

Шаг 6. Добавим файл UserLoginRegister.cs в папку Models (класс UserLogin и класс UserRegister)

При логине в форме мы будем использовать
класс UserLogin

При регистрации в форме мы будем использовать
класс UserRegister

Добавим файл UserLoginRegister.cs в папку Models


namespace WebApplication1.Models
<
public class UserLogin
<
[ Required ]
public string Name

[ Required ]
[DataType(DataType.Password)]
public string Password < get; set; >
>

public class UserRegister
<
[ Required ]
public string Name

[ Required ]
[DataType(DataType.Password)]
public string Password

Чтобы добавить контроллер в наш проект в окне Solution Explorer нажимаем правой клавишей мыши на
Controllers → Add → Controller




using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1.Models;
using System.Web.Security;

namespace WebApplication1.Controllers
<
public class HomeController : Controller
<
public ActionResult Index()
<
return View();
>

public ActionResult Login()
<
return View();
>

public ActionResult Register()
<
return View();
>

Читайте также: