# 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lessons.sannybuilder.com/00300/00100/000143.-znakomstvo-s-formami.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
