Windows forms создать элемент

Введение в Windows Forms

Для создания графических интерфейсов с помощью платформы .NET применяются разные технологии — Window Forms, WPF, приложения для магазина Windows Store (для ОС Windows 8/8.1/10). Однако наиболее простой и удобной платформой до сих пор остается Window Forms или формы. Данное руководство ставит своей целью дать понимание принципов создания графических интерфейсов с помощью технологии WinForms и работы основных элементов управления.

Создание графического приложения

Для создания графического проекта нам потребуется среда разработки Visual Studio. Поскольку наиболее распространенная пока версия Visual Studio 2013, то для данного руководства я буду использовать бесплатную версию данной среды Visual Studio Community 2013 которую можно найти на странице https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx.

После установки среды и всех ее компонентов, запустим Visual Studio и создадим проект графического приложения. Для этого в меню выберем пункт File (Файл) и в подменю выберем New — > Project (Создать — > Проект). После этого перед нами откроется диалоговое окно создания нового проекта:

В левой колонке выберем Windows Desktop , а в центральной части среди типов проектов — тип Windows Forms Application и дадим ему какое-нибудь имя в поле внизу. Например, назовем его HelloApp. После этого нажимаем OK.

После этого Visual Studio откроет наш проект с созданными по умолчанию файлами:

Большую часть пространства Visual Studio занимает графический дизайнер, который содержит форму будущего приложения. Пока она пуста и имеет только заголовок Form1. Справа находится окно файлов решения/проекта — Solution Explorer (Обозреватель решений). Там и находятся все связанные с нашим приложением файлы, в том числе файлы формы Form1.cs.

Внизу справа находится окно свойств — Properties. Так как у меня в данный момент выбрана форма как элемент управления, то в этом поле отображаются свойства, связанные с формой.

Теперь найдем в этом окне свойство формы Text и изменим его значение на любое другое:

Таким образом мы поменяли заголовок формы. Теперь перенесем на поле какой-нибудь элемент управления, например, кнопку. Для этого найдем в левой части Visual Studio вкладку Toolbox (Панель инструментов) . Нажмем на эту вкладку, и у нас откроется панель с элементами, откуда мы можем с помощью мыши перенести на форму любой элемент:

Найдем среди элементов кнопку и, захватив ее указателем мыши, перенесем на форму:

Это визуальная часть. Теперь приступим к самому программированию. Добавим простейший код на языке C#, который бы выводил сообщение по нажатию кнопки. Для этого мы должны перейти в файл кода, который связан с этой формой. Если у нас не открыт файл кода, мы можем нажать на форму правой кнопкой мыши и в появившемся меню выбрать View Code (Посмотреть файл кода):

Однако воспользуемся другим способом, чтобы не писать много лишнего кода. Наведем указатель мыши на кнопку и щелкнем по ней двойным щелчком. Мы автоматически попадаем в файл кода Form1.cs, который выглядит так:

Добавим вывод сообщения по нажатию кнопки, изменив код следующим образом:

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

Чтобы запустить приложение в режиме отладки, нажмем на клавишу F5 или на зеленую стрелочку на панели Visual Studio. После этого запустится наша форма с одинокой кнопкой. И если мы нажмем на кнопку на форме, то нам будет отображено сообщение с приветствием.

После запуска приложения студия компилирует его в файл с расширением exe. Найти данный файл можно, зайдя в папку проекта и далее в каталог bin/Debug или bin/Release

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

Читайте также:  Музыкальный редактор для windows

Создание Windows Forms элемента управления панели элементов Create a Windows Forms Toolbox Control

Шаблон элемента элемента управления панели элементов Windows Forms, включенный в средства расширения Visual Studio (пакет VS SDK), позволяет создать элемент управления панели элементов , который автоматически добавляется при установке расширения. The Windows Forms Toolbox Control item template that is included in the Visual Studio Extensibility Tools (VS SDK), lets you create a Toolbox control that is automatically added when the extension is installed. В этом пошаговом руководстве показано, как использовать шаблон для создания простого элемента управления счетчика, который можно распространить другим пользователям. This walkthrough shows how to use the template to create a simple counter control that you can distribute to other users.

Предварительные требования Prerequisites

Начиная с Visual Studio 2015, пакет SDK для Visual Studio не устанавливается из центра загрузки. Starting in Visual Studio 2015, you do not install the Visual Studio SDK from the download center. Он входит в состав программы установки Visual Studio как дополнительный компонент. It is included as an optional feature in Visual Studio setup. Пакет SDK для VS можно установить и позже. You can also install the VS SDK later on. Дополнительные сведения см. в статье Установка пакета SDK для Visual Studio. For more information, see Install the Visual Studio SDK.

Создание элемента управления панели элементов Create the Toolbox Control

Шаблон элемента управления панели элементов Windows Forms создает неопределенный пользовательский элемент управления и предоставляет все функциональные возможности, необходимые для добавления элемента управления на панель элементов. The Windows Forms Toolbox Control template creates an undefined user control and provides all of the functionality that is required to add the control to the Toolbox.

Создание расширения с помощью Windows Forms элемента управления панели элементов Create an extension with a Windows Forms Toolbox Control

Создайте проект VSIX с именем MyWinFormsControl . Create a VSIX project named MyWinFormsControl . Шаблон проекта VSIX можно найти в диалоговом окне » Новый проект «, выполнив поиск по слову «VSIX». You can find the VSIX project template in the New Project dialog, by searching for «vsix».

После открытия проекта добавьте Windows Forms шаблон элемента элемента управления панели элементов с именем Counter . When the project opens, add a Windows Forms Toolbox Control item template named Counter . В Обозреватель решений щелкните правой кнопкой мыши узел проекта и выберите команду Добавить > новый элемент. In the Solution Explorer, right-click the project node and select Add > New Item. В диалоговом окне Добавление нового элемента перейдите в раздел расширяемость Visual C# > и выберите Windows Forms элемент управления панели элементов . In the Add New Item dialog, go to Visual C# > Extensibility and select Windows Forms Toolbox Control

При этом добавляется пользовательский элемент управления, ProvideToolboxControlAttribute RegistrationAttribute для размещения элемента управления в панели элементов, а также запись ресурса Microsoft. VisualStudio. тулбоксконтрол в манифесте VSIX для развертывания. This adds a user control, a ProvideToolboxControlAttribute RegistrationAttribute to place the control in the Toolbox, and a Microsoft.VisualStudio.ToolboxControl Asset entry in the VSIX manifest for deployment.

Создание пользовательского интерфейса для элемента управления Build a user interface for the control

Counter Элементу управления требуются два дочерних элемента управления: Label для вывода текущего счетчика и Button для сброса счетчика в значение 0. The Counter control requires two child controls: a Label to display the current count, and a Button to reset the count to 0. Другие дочерние элементы управления не требуются, так как вызывающие объекты увеличивают счетчик программным образом. No other child controls are required because callers will increment the counter programmatically.

Создание пользовательского интерфейса To build the user interface

В Обозреватель решений дважды щелкните Counter. CS , чтобы открыть его в конструкторе. In Solution Explorer, double-click Counter.cs to open it in the designer.

Удалите щелчком мыши. Remove the Click Here ! , которая включается по умолчанию при добавлении шаблона элемента элемента управления панели элементов Windows Forms. button that is included by default when you add the Windows Forms Toolbox Control item template.

Читайте также:  Wifi direct windows 10 как передать файлы

Перетащите элемент управления с панели элементов, Label а затем Button элемент управления под ним в область конструктора. From the Toolbox, drag a Label control and then a Button control below it to the design surface.

Измените размер элемента управления «общий» на 150, 50 пикселей и измените размер элемента управления «Кнопка» на 50, 20 пикселей. Resize the overall user control to 150, 50 pixels, and resize the button control to 50, 20 pixels.

В окне Свойства задайте следующие значения для элементов управления в области конструктора. In the Properties window, set the following values for the controls on the design surface.

Control Control Property (Свойство) Property Значение Value
Label1 TextText «» «»
Button1 имя; Name бтнресет btnReset
Button1 TextText Reset Reset

Код пользовательского элемента управления Code the user control

Counter Элемент управления предоставит метод для увеличения счетчика, событие, которое будет выдаваться при каждом увеличении счетчика, кнопку сброса и три свойства для хранения текущего числа, отображаемого текста, а также для отображения или скрытия кнопки сброса . The Counter control will expose a method to increment the counter, an event to be raised whenever the counter is incremented, a Reset button, and three properties to store the current count, the display text, and whether to show or hide the Reset button. Атрибут ProvideToolboxControl определяет место на панели элементов , в котором будет отображаться элемент управления Counter . The ProvideToolboxControl attribute determines where in the Toolbox the Counter control will appear.

Код пользовательского элемента управления To code the user control

Дважды щелкните форму, чтобы открыть обработчик событий Load в окне кода. Double-click the form to open its load event handler in the code window.

Над методом обработчика событий в классе Control создайте целое число, чтобы сохранить значение счетчика, и строку для хранения отображаемого текста, как показано в следующем примере. Above the event handler method, in the control class create an integer to store the counter value and a string to store the display text as shown in the following example.

Создайте следующие открытые объявления свойств. Create the following public property declarations.

Вызывающие объекты могут получить доступ к этим свойствам для получения и задания отображаемого текста счетчика, а также для отображения или скрытия кнопки Сброс . Callers can access these properties to get and set the display text of the counter and to show or hide the Reset button. Вызывающие объекты могут получить текущее значение свойства только для чтения Value , но не могут задавать значение напрямую. Callers can obtain the current value of the read-only Value property, but they cannot set the value directly.

Добавьте следующий код в Load событие для элемента управления. Put the following code in the Load event for the control.

Задание текста метки в Load событии позволяет загружать целевые свойства до применения их значений. Setting the Label text in the Load event enables the target properties to load before their values are applied. Установка текста метки в конструкторе приведет к пустой метке. Setting the Label text in the constructor would result in an empty Label.

Создайте следующий открытый метод для увеличения счетчика. Create the following public method to increment the counter.

Добавьте объявление Incremented события в класс Control. Add a declaration for the Incremented event to the control class.

Вызывающие объекты могут добавлять обработчики в это событие для реагирования на изменения значения счетчика. Callers can add handlers to this event to respond to changes in the value of the counter.

Вернитесь в режим конструктора и дважды щелкните кнопку Сброс , чтобы создать btnReset_Click обработчик событий. Return to design view and double-click the Reset button to generate the btnReset_Click event handler. Затем заполните его, как показано в следующем примере. Then, fill it in as shown in the following example.

Непосредственно над определением класса в объявлении атрибута ProvideToolboxControl измените значение первого параметра с «MyWinFormsControl.Counter» на «General» . Immediately above the class definition, in the ProvideToolboxControl attribute declaration, change the value of the first parameter from «MyWinFormsControl.Counter» to «General» . Таким образом задается имя группы элементов, в которой будет размещаться элемент управления на панели элементов. This sets the name of the item group that will host the control in the Toolbox.

В приведенном ниже примере показаны атрибут ProvideToolboxControl и скорректированное определение класса. The following example shows the ProvideToolboxControl attribute and the adjusted class definition.

Тестирование элемента управления Test the control

Чтобы протестировать элемент управления панели элементов , сначала протестируйте его в среде разработки, а затем протестируйте в скомпилированном приложении. To test a Toolbox control, first test it in the development environment and then test it in a compiled application.

Тестирование элемента управления To test the control

Нажмите клавишу F5 , чтобы начать отладку. Press F5 to Start Debugging.

Эта команда выполняет сборку проекта и открывает второй экспериментальный экземпляр Visual Studio с установленным элементом управления. This command builds the project and opens a second Experimental instance of Visual Studio that has the control installed.

В экспериментальном экземпляре Visual Studio создайте проект приложения Windows Forms . In the Experimental instance of Visual Studio, create a Windows Forms Application project.

В Обозреватель решений дважды щелкните Form1. CS , чтобы открыть его в конструкторе, если он еще не открыт. In Solution Explorer, double-click Form1.cs to open it in the designer if it is not already open.

На панели элементов Counter элемент управления должен отображаться в разделе Общие . In the Toolbox, the Counter control should be displayed in the General section.

Перетащите Counter элемент управления в форму, а затем выберите его. Drag a Counter control to your form, and then select it. Value Свойства, Message и ShowReset будут отображаться в окне Свойства вместе со свойствами, унаследованными от UserControl . The Value , Message , and ShowReset properties will be displayed in the Properties window, together with the properties that are inherited from UserControl.

Задайте для свойства Message значение Count: . Set the Message property to Count: .

Перетащите Button элемент управления в форму, а затем задайте для свойства Name и Text кнопки значение Test . Drag a Button control to the form, and then set the name and text properties of the button to Test .

Дважды щелкните кнопку, чтобы открыть форму Form1. CS в представлении кода и создать обработчик щелчка. Double-click the button to open Form1.cs in code view and create a click handler.

В обработчике щелчка вызовите counter1.Increment() . In the click handler, call counter1.Increment() .

В функции конструктора после вызова InitializeComponent Введите, counter1«.«Incremented += а затем дважды нажмите клавишу Tab . In the constructor function, after the call to InitializeComponent , type counter1«.«Incremented += and then press Tab twice.

Visual Studio создает обработчик на уровне формы для counter1.Incremented события. Visual Studio generates a form-level handler for the counter1.Incremented event.

Выделите Throw оператор в обработчике событий, введите mbox , а затем дважды нажмите клавишу Tab , чтобы создать окно сообщения из фрагмента кода Mbox. Highlight the Throw statement in the event handler, type mbox , and then press Tab twice to generate a message box from the mbox code snippet.

На следующей строке добавьте следующий if / else блок, чтобы задать видимость кнопки сброса . On the next line, add the following if / else block to set the visibility of the Reset button.

Нажмите клавишу F5. Press F5.

Откроется форма. The form opens. Counter Элемент управления отображает следующий текст. The Counter control displays the following text.

Число: 0 Count: 0

Выберите Тест. Select Test.

Счетчик увеличивается, и Visual Studio отображает окно сообщения. The counter increments and Visual Studio displays a message box.

Закройте окно сообщения. Close the message box.

Кнопка сброса исчезнет. The Reset button disappears.

Выберите тест , пока счетчик не достигнет 5 -закрывающих окон сообщений каждый раз. Select Test until the counter reaches 5 closing the message boxes each time.

Появится кнопка Сброс . The Reset button reappears.

Выберите Сброс. Select Reset.

Счетчик сбрасывается в значение 0. The counter resets to 0.

Читайте также:  Как изменить приложение по умолчанию windows
Оцените статью