# 000143. Знакомство с формами

Знакомство с формами||wmysterio|wmysterio|<wmysterio@yandex.ru>|||Всем привет! Начинаем первый урок по языке программирования c#, в котором мы будем изучать курс по Windows-формам. Первый урок будет больше теоретический, так что не теряем времени, чтобы приступить к программированию дальше.\
\
Думаю все знают, что в основу ОС входит такой объект, как окно, тобиш оболочка с некими функциями и свойствами. Прототипом этого окна является форма, она же макет окна. Что-бы начать работу, нужно установить одну из среды программирования #(я, например, использую Visual Studio 2010 Express). Как создавать проекты я рассматривать не буду, так как основные этапы были рассмотрены в уроках по ScriptHook. В качестве создаваемого проекта укажем тип "Приложение Windows Forms" и указываем имя нашей будущей программы:\
[![](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/s57351479.jpg)](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/57351479.png)\
\
Нажимаем Ок" и ждём, пока компилятор сформирует макет будущего окна программы. После этого мы увидим визуальный конструктор формы:\
[![](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/s45247233.jpg)](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/45247233.png)\
\
Слева, как правило, находится диспетчер проектов, в котором указаны папки и файлы приложения. Показывать или скрывать это дерево можно с помощью меню "Вид->Обозреватель решений".\
\
Справа обычно размещают три окна: "Панель элементов", "Свойства выделенного элемента" и "источних данных". Получить данные окна можно всё также с меню "Вид". Для удобства все эти окна можно перемещать в любую точку экрана, делать его скрываемым, как на скрине выше. В низу находится панель ошибок, где удобно отлаживать код и наблюдать за возможными ошибками с вариантами их исправления. Глубоко копать не буду, наша задача пока только ознакомится с этим меню.\
\
В центре экрана находится шаблон окна, являющийся самой программой. Красными кругами обозначены "фиксаторы" размера окна, с помощью которого мы можем менять размер формы. Меняется естественно на глаз, но можно вбить размер вручную. Для этого существует окно "свойства", в котором мы можем отредактировать параметры формы, которая появляется изначально. Кликнув на это окно мы получим все доступные свойства:\
![](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/45771757.png)\
\
Для удобства пользования я рекомендую использовать сортировку полей по категориям(отмечено оранжевым цветом), так как это упрощает поиск нужного свойства. В дальнейшем вы можете менять эту сортировку на своё усмотрение. Давайте изменим свойство Text на нашу строку, например: "Test WinForm":\
![](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/42949377.png)\
\
Нажимаем \*\*Enter \*\*или кликаем по шаблону формы, чтобы изменения вступили в силу, а потом запустим приложение в "режиме отладки" для просмотра результата(клавиша **F5**):\
![](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/98640156.png)\
\
Таким образом, визуально видно, что изменяемое нами свойство меняет заголовок программы. При тестировании мы получили окно, которое полностью соответствует шаблону формы в нашем компиляторе. Это стандартное окно, которое мы обычно видим в ОС Windows, только без информации.\
\
Давайте рассмотрим ещё два свойства, которые задают размер окна. Это свойство **Size**:\
![](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/86464898.png)\
\
Из категории "Макет". В нём вы указываете размер окна в пикселах. **Width** отвечает за длину окна, а **Height** за его ширину по вертикали. Зададим окну размер, например, 640x480 и запустим приложение:\
![](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/04222844.png)\
\
Как видим, размер увеличился, однако мы можем менять размер окна вручную непосредственно в программе, наведя курсор мыши в правый нижний участок окна. Что-бы запретить пользователю изменять этот размер, нужно установить значение свойства **AutoSizeMode** в режим **GrowAndShrink**.\
![](https://github.com/wmysterio/scm-scripting-lessons/blob/main/_pu/2/27787154.png)\
\
Теперь размер окна будет фиксированным и не поддаваться изменению.\
\
На этом урок закончу, в следующем мы рассмотрим панель элементов.\
|1194|1|0|45247233`png`600`419`400`279\|45771757`png`298`298|42949377`png`303`473\|98640156`png`308`310|86464898`png`275`248\|04222844`png`320`240|27787154`png`281`91\|57351479`png`745`340`400`182||znakomstvo\_s\_formami|1392722189
