Вы находитесь на странице: 1из 54

Глава №1.

Формы Windows и пользовательский


интерфейс

Занятие 1. Добавление и настрой ка форм


Windows.
Занятие 2. Компоновка элементов управления с
помощью контей нерных элементов управления.
Резюме
Занятие 1. Добавление и настрой ка форм Windows.

•Обзор форм Windows


•Добавление форм в проект
•Свой ство форм Windows
•Изменение внешнего вида и поведения формы
•Установка заголовка формы
•Установка типа границы формы
•Настрой ка состояния формы при запуске
•Изменение размера формы
•Указание положения формы при запуске
•Размещение формы поверх пользовательского интерфей са
•Прозрачность и непрозрачность форм
•Настрой ка стартовой формы
•Указание стартовой формы
•Задание невидимой стартовой формы
•Создание непрямоугольных форм Windows
Обзор форм Windows
Формы Windows — это основной компонент пользовательского
интерфей са. Они предоставляют контей нер, который содержит элементы
управления и меню. Формы могут реагировать на события мыши и
клавиатуры и выводить на экран данные с помощью элементов
управления, которые содержатся в форме.
При создании нового проекта Windows Forms в проект добавляется
форма по умолчанию с именем Form1.
Добавление форм в проект
Дополнительные формы:
• можно добавить и настроить во время разработки
• создать экземпляры предварительно разработанных форм в коде во
время выполнения.

Добавление новой формы в проект во время разработки:

1. Выбрать Add Windows Form в меню Project. Появится диалоговое окно


Add New Item.
2. Выбрать Windows Form и ввести имя новой формы в поле Name.
3. Щелкнуть Add, чтобы добавить форму в среду разработки.
Во время разработки можно добавлять и
настраивать столько форм, сколько
потребуется приложению. Кроме того,
существует возможность создавать в коде
новые экземпляры форм. Этот метод чаще
всего применяется, когда необходимо
отобразить форму, которая уже была
разработана.

Получение доступа к методам и свойствам формы из её кода:

this.Text = "Новое название формы";


//При запуске программы у формы появится заголовок, указанный в
кавычках.
Добавление формы в приложение во время выполнения:

1. Объявить и создать экземпляр переменной , представляющей форму, и


задать ей значение. Данный пример предполагает, что уже разработана в
проекте форма с именем Form1:

Form myForm;
myForm = new Form();
//Присвоение заголовка форме и отображение новой формы
myForm.Text = “Form2”;
myForm.Show();

2. Запустить программу нажатием F5.


На экране появятся две формы.
Свойства форм Windows
Формы Windows содержат множество свой ств,
позволяющих настраивать их внешний вид и поведение.
Просматривать и изменять эти свой ства можно в окне
Properties конструктора.
Некоторые свойства класса
Form

Свойство Описание
Задаёт имя класса Form, показанному в конструкторе.
Name Данное свойство задаётся исключительно в процессе
разработки.
BackColour Указывает цвет фона формы.
BackgroundImage Указывает фоновое изображение формы.
Определяет, как изображение, указанное свойтвом
Background- BackgroundImage,будет располагаться в форме. Если
ImageLayout фоновое изображение не выбрано, данное свойство
игнорируется.
ControlBox Определяет, имеет ли форма оконное меню Control/System.
Указывает курсор, который появляется при наведении
Cursor
мыши на форму.
Указывает, может ли форма принимать ввод от пользователя. Если
Enabled свойству Enabled задано значение False, все элементы управления
формы также блокируются.

Задает шрифту формы значение по умолчанию. Если отдельно не


Font указать значение свойства Font элементов упраления формы, они
примут это же значение по умолчанию.

Указывает цвет переднего плана формы, то есть цвет выводимого


ForeColor текста. Если отдельно не указать значение свойства ForeColor
элементов управления формы, они примут это же значение.

FormBorderStyle Указывает вид и поведение границы и строки заголовка формы.


HelpButton Указывает, есть ли у формы кнопка Help.
Icon Указывает значок, расположенный в заголовке формы.

Когда свойству StartPosition задано значение Manual, это свойство


Location указывает исходное положение формы относительно верхнего
левого угла экрана.

MaximixeBox Указывает, есть ли у формы кнопка MaximixeBox.


Устанавливает максимальный размер формы. Если задать этому
MaximumSize свойству размер 0; 0, у формы не будет верхнего ограничения
размера.
MinimizeBox Указывает, есть ли у формы кнопка MinimizeBox.
Устанавливает минимальный размер формы, который пользователь
MinimumSize
может задать.
Устанавливает уровень непрозрачности или прозрачности формы
от 0 до 100%. Форма, непрозрачность которой составляет 100%, -
Opacity
полностью непрозрачна, а форма, имеющая 0% непрозрачности, -
наоборот, полностью прозрачна.
Size Принимает и устанавливает исходный размер формы.
Указывает положение формы в момент ее первого выведения на
StartPosition
экран.
Text Указывает заголовок формы.
Указывает, всегда ли форма отображается поверх всех остальных
TopMost
форм, свойству TopMost которых не задано значение True.
Visible Указывает, видима ли форма во время работы.
Изменение внешнего вида и поведения формы
С помощью окна Properties можно задать форме свой ства во
время разработки. Большинство свой ств формы можно также
задавать во время выполнения. Обобщенная схема
настраивания простого свой ства состоит в том, чтобы
присвоить ему значение с помощью оператора присвоения
(=).
Form1 a = new Form1();
a.Text = "Это форма 1";
Application.Run(a);
Значение свой ства Size можно задать следующим образом:
this.Size = new Size(600, 600);
На экране появится форма указанного размера.

Значение свой ства Font задается экземпляром какого-либо


класса или структуры.
Font font = new Font("Arial", 12.0f);
this.Font = font;

После запуска приложения текст в элементах с


поддержкой отображения и редактирования текста будет
отображен в формате шрифта Arial и двенадцатым
размером.
Свой ство Name задает имя формы, которое будет указано
в коде программы.
Установка заголовка формы
Заголовок формы можно изменить с помощью свой ства
Text. Чтобы это сделать во время разработки, необходимо в
окне Properties задать свой ство Text формы. Для изменения
заголовка формы во время выполнения нужно установить
свой ство Text формы, как показано в следующем фрагменте
кода:

this.Text = "Это форма 1"


Установка типа границы формы
В зависимости от настроек свой ство FormBorderStyle может
контролировать, как выглядит граница, способен ли пользователь
изменять размеры формы во время выполнения и видны ли различные
экранные кнопки управления окном (хотя все это можно сделать и с
помощью других свой ств формы).
Для изменения типа границы формы:
• во время разработки нужно установить свой ство FormBorderStyle в
окне Properties
• во время выполнения нужно установить свой ство FormBorderStyle, как в
следующем фрагменте кода:

this.FormBorderStyle = FormBorderStyle.Fixed3D;
Значения свойства FormBorderStyle.

Значение Описание

Форма не имеет границы, не может быть минимизирована или


None развернута до максимальных размеров и у нее нет экранной
кнопки управления окном и кнопки справки.

Форма имеет тонкую границу, и размеры формы нельзя изменить


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

Форма имеет объемную границу, и размеры формы нельзя


изменить во время выполнения. Форма может быть
Fixed3D минимизирована, развернута до максимальных размеров и иметь
кнопку справки или кнопку управления окном, что определяется
остальными свойствами.
Форма имеет тонкую границу, и размеры формы нельзя изменить
во время выполнения. У формы нет экранной кнопки управления
FixedDialog окном, но может быть кнопка справки, что определяется
остальными свойствами. Форму можно минимизировать или
развернуть до максимальных размеров.

Форма имеет настройки по умолчанию, но они могут изменяться


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

Форма имеет тонкую границу, и размеры формы нельзя изменить


FixedToolWindow
во время выполнения. Форма содержит только кнопку закрытия.
SizableToolWindo Форма имеет тонкую границу и размеры формы могут быть
w изменены.
Настройка состояния формы при запуске

Свой ство WindowState определяет состояние формы при


запуске. У этого свой ства может быть три значения: Normal,
Minimized и Maximized. Значение по умолчанию — Normal.

Когда задается значение Normal, форма при запуске имеет


размер, указанный в свой стве Size. В случае значения Minimized
форма будет минимизирована на панели задач, а при значении
Maximized — развернута до максимальных размеров.

Данное свой ство можно задать и во время выполнения, но тогда


это никак не отразится на состоянии формы. Поэтому удобнее
задавать значение этому свой ству в окне Properties во время
разработки.
Изменение размера формы
Изменить размеры формы можно, задав свой ство Size в окне Properties.
Или же отдельно установить члены Width и Height, раскрыв свой ство Size
и присвоив значения отдельным полям.

Размеры формы можно изменить во время выполнения, задав свой ство


Size в коде.

// Назначение отдельно высоты и ширины формы


this.Width = 100;
this.Height = 100;
// Присвоение свойству Size нового экземпляра структуры Size
this.Size = new Size(600, 600);

Размеры формы также изменятся, если потянуть за нижний правый угол,


нижний край или правый край формы в конструкторе. Как только
размеры формы будут заметно изменены в конструкторе, свой ству Size
автоматически будет задан новый размер.

Следует помнить, что если свой ству StartPosition формы задано значение
WindowsDefaultBounds, то размеру будет задано значение по умолчанию,
а не указанное в свой стве Size.
Указание положения формы при запуске
Положение формы при запуске определяется комбинацией двух
свой ств. Первое свой ство, StartPosition, определяет, в какой части
экрана будет размещена форма при первом запуске.

Значения свойства StartPosition.


Значение Описание
Начальное положение формы будет задано свойством
Manual
Location формы.
CenterScreen Форма появится в центре экрана.
Форма будет открыта Windows в положении по
WindowsDefaultLocation умолчанию, а размер формы – соответствовать размеру,
указанному в свойстве Size.
Форма будет открыта в Windows в положении по
WindowsDefaultBounds умолчанию, а размер формы – соответствоать размеру по
умолчанию.
CenterParent Форма будет отображена в центре родительской формы.

Если свой ству StartPosition задано значение Manual, начальное


положение формы будет соответствовать указанному в свой стве
Location.
Размещение формы поверх
пользовательского интерфейса

Можно сделать так, чтобы форма всегда располагалась


поверх пользовательского интерфей са, задав свой ству
TopMost значение True. Если TopMost присвоить значение
True, форма всегда будет расположена поверх всех
остальных форм, свой ству TopMost которых задано
значение False, являющееся значением по умолчанию.

Если значение True свой ства TopMost задано


нескольким формам, они могут закрыть друг
друга.
Прозрачность и непрозрачность форм
С помощью свой ства Opacity можно задавать степень непрозрачности
формы. При настрой ке значения непрозрачности в окне Properties оно
может варьироваться от 0 до 100 %.

Непрозрачность в 100 % означает, что форма полностью непрозрачна


(сплошная и видимая), а значение 0 % — что форма полностью прозрачна.
Значения между 0 и 100 % делают форму частично прозрачной .

Кроме того, свой ство Opacity можно задать в коде. При этом ему задается
значение от 0 до 1, где 0 означает, что форма будет полностью прозрачной , а
1 — полностью непрозрачной . Следующий пример демонстрирует, как
настраивается прозрачность формы в 50 %:

this.Opacity = 0.5;

Свой ство Opacity может пригодиться, когда необходимо расположить одну


форму на переднем плане, наблюдая при этом за работой формы на заднем
плане, или же для создания интересных визуальных эффектов. Чаще всего
элемент управления наследует прозрачность той формы, которая его
содержит.
Настройка стартовой формы
Если приложение Windows Forms содержит множество форм, одну из
них необходимо обозначить как стартовую.
Стартовая форма — это форма, которая при выполнении
приложения загружается первой . Стартовый объект указывается в
методе Main.
Класс Program.cs по умолчанию содержит в себе метод Main:

static void Main()


{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

Стартовый объект обозначен строкой : Application.Run(new Form1());


Задать стартовую форму проекта можно, изменив эту строку в классе
Program.cs на ту форму, которой вы хотите начинать приложение.
Указание стартовой формы
1. Чтобы посмотреть код, дважды щелкнуть Program.cs в окне Solution
Explorer. Откроется окно кода.

2. Най ти метод Main, а затем следующую строку:


Application.Run(new Form());
где Form соответствует имени формы, которая на данный момент
является стартовой .
3. Заменить Form именем формы, которую необходимо задать как
стартовую.
Задание невидимой стартовой формы

Порой будет возникать необходимость в том, чтобы во время


выполнения стартовая форма была невидимой . Например,
необходимо, чтобы форма при запуске выполнила операцию,
требующую больших затрат времени, и появилась только после
завершения операции.
Свой ство Visible отвечает за видимость формы во время
выполнения. Свой ство Visible можно задать либо в окне Properties,
либо в коде. Если свой ству Visible задать значение False в окне
свой ств, форма при запуске будет невидимой .
Чтобы форма была невидимой во время выполнения, задать
свой ству Visible значение False в коде, как показано в следующем
примере:
this.Visible = false;
Создание непрямоугольных форм Windows
Создать непрямоугольную форму можно, задав свой ство Region формы в
обработчике события Form_Load.
Свой ство Region является экземпляром класса System.Drawing.Region.
Самый простой способ создать непрямоугольную форму — это создать
новый экземпляр класса GraphicsPath, а затем с его помощью создать
новый класс Region.

Пример кода:

System.Drawing.Drawing2D.GraphicsPath myPath = new


System.Drawing.Drawing2D.GraphicsPath();
// Добавление эллипса, вписанного в прямоугольную форму заданной ширины
и высоты
myPath.AddEllipse(0, 0, this.Width, this.Height);
// Создание нового класса Region из GraphicsPath
Region myRegion = new Region(myPath);
// Присвоение свойству Region формы нового региона
this.Region = myRegion;

При этом следует задать свой ству FormBorderStyle формы значение None.
Создание непрямоугольной формы
1. В окне Properties задать свой ству FormBorderStyle значение
None.

2. Дважды щелкнуть форму в


конструкторе, чтобы открыть
обработчик события по умолчанию
Form_Load.

3. В обработчике события Form_Load


создать новый экземпляр класса Region.

4. Если нужно, добавить в форму


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

5. Задать форму как стартовую и нажмите


F5, чтобы увидеть форму.
Занятие 2. Компоновка элементов управления с
помощью контей нерных элементов управления.
•Обзор контей нерных элементов управления
•Коллекция Controls
•Добавление в конструкторе элемента управления в форму или контей нер
ный элемент управления
•Добавление элемента управления в форму или контей нерный элемент уп
равления во время выполнения
•Свой ство Anchor
•Свой ство Dock
•Элемент управления GroupBox
•Элемент управления Panel
•Элемент управления FlowLayoutPanel
•Создание разрыва заливки на элементе, содержащем элемент управления
FlowLayoutPanel
•Элемент управления TableLayoutPanel
•Добавление элемента управления в TableLayoutPanel
во время выполнения
•Элемент управления TabControl
•Элемент управления SplitContainer
Обзор контейнерных элементов управления
Контейнерные элементы управления — это вместилища для
других элементов управления. К ним относятся Panel,
FlowLayoutPanel и SplitContainer.

Они предоставляют форме логические и физические подразделы,


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

Если внести изменения в свой ства контей нерного элемента


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

Можно вручную внести изменения в любое свой ство


содержащегося в контей нере элемента управления, но если
контей нер заблокирован, то все элементы управления внутри него
будут недоступны, несмотря на индивидуальные настрой ки их
свой ств.
Коллекция Controls

У каждой формы и контей нерного элемента управления


есть свой ство Controls, представляющее собой коллекцию
элементов управления, которые содержит в себе эта форма
или элемент управления.

Если во время разработки добавить элемент управления в


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

Кроме того, можно динамически добавить новый элемент


управления во время выполнения, создав его
самостоятельно и добавив в коллекцию элементов
управления.
Добавление в конструкторе элемента управления в
форму или контейнерный элемент управления

Существует четыре способа добавления в конструкторе


элемента управления в форму или контей нерный элемент
управления.

1. Перетащить элемент управления из Toolbox в форму или в


контей нерный элемент управления.
2. Выбрать элемент управления в Toolbox и нарисовать его в
форме с помощью мыши.
3. Выбрать элемент управления в Toolbox и дважды щелкнуть
форму.
4. Дважды щелкнуть элемент управления в Toolbox.
Добавление элемента управления в форму или в
контейнерный элемент управления во время выполнения
Чтобы добавить элемент управления в форму или в контей нерный
элемент управления во время выполнения, нужно создать новый
экземпляр элемента управления и добавить его в коллекцию Controls
формы.
Любые свой ства элемента управления, например Location или Text,
должны задаваться до того, как они будут добавлены в коллекцию
элементов управления.
Следующий пример кода предполагает, что уже добавлен контей нер Panel
с именем Рапеl1:
Button aButton = new Button();
// Назначение относительного расположения в контей нерном
элементе управления или в форме
Button.Location = new Point(20, 20);
aButton.Text = "Test Button";
// Добавление кнопки на панель Pаnеl1
panel1.Controls.Add(aButton);
// Добавление кнопки в форму Forml
this.Controls.Add(aButton);
Свой ство Anchor
Свой ства Anchor и Dock элемента управления определяют его поведение
внутри формы или родительского элемента управления.
Свой ство Anchor позволяет определить постоянное расстояние между
границами элемента управления и границами формы или другого
контей нера.
Значением по умолчанию свой ства Anchor является Top, Left, означающее,
что верхний и левый края элемента управления всегда будут оставаться на
одном расстоянии от верхнего и левого краев формы.

Если свой ству Anchor задать


противоположные свой ства, такие
как Тор и Bottom, элемент
управления растянется, чтобы
сохранить постоянное расстояние
от краев элемента управления до
краев формы.
Свой ству Anchor можно задать
любую комбинацию значений Top,
Bottom, Left, Right или не задать ни
одно из них.
Свой ство Dock
Свой ство Dock позволяет прикрепить элемент
управления к краю родительского элемента.
Чтобы задать свой ство Dock, необходимо
щелкнуть тот раздел интерфей са, который
соответствует месту, к которому нужно
прикрепить элемент управления.
Например, чтобы обеспечить стыковку
элемента управления с правой стороной
формы, требуется щелкнуть полоску с правой
стороны интерфей са.
Для отключения стыковки выбрать
None. По щелчку в центре интерфей са
свой ства Dock, ему задается значение
Fill, означающее, что элемент
управления будет прикреплен ко всем
четырем сторонам формы и заполнит
элемент управления, в котором
находится.
Элемент управления GroupBox
GroupBox — это контей нерный элемент управления, который представляет
собой подраздел формы, окруженный границей . Он не предоставляет ни
полос прокрутки, ни каких-либо специализированных возможностей
разбивки.
Элемент управления GroupBox может иметь заголовок, который задается
свой ством Text, либо не иметь его, если это свой ство содержит пустую
строку .

Чаще всего элементы управления GroupBox применяют для группировки


элементов управления RadioButton. Последние, расположенные в одном
элементе GroupBox, являются взаимоисключающими, но при этом не
исключают других элементов RadioButton формы или других элементов
GroupBox.
Элемент управления Panel
Элемент управления Panel создает
подраздел формы, который может
содержать другие элементы
управления. Рассматриваемый элемент
управления может не выделяться на
фоне окружающей его формы или
охватываться границей , что определяет
свой ство BorderStyle в зависимости от
присваиваемого ему значения: None —
без границы, FixedSingle — тонкая
граница или Fixed3D — объемная
граница . Элемент управления Panel — прокручиваемый
элемент, он поддерживает горизонтальную и
вертикальную полосы прокрутки и содержать
элементы за пределами своих видимых границ. Когда
свой ству AutoScroll задано значение True, полосы
прокрутки автоматически становятся доступными,
если какой -либо элемент управления помещается за
пределами видимых границ элемента. В случае
присвоения свой ству AutoScroll значения False
элементы за пределами видимых границ панели
делаются недоступными.
Элемент управления FlowLayoutPanel
Элемент управления FlowLayoutPanel — это подкласс элемента
управления Panel. Он динамически переставляет элементы,
которые содержит, когда его размеры изменяются во время
разработки или выполнения. Например, если добавить кнопку
Button в контей нерный элемент управления FlowLayoutPanel и
задать значения свой ств Location кнопки и Size элемента
управления FlowLayoutPanel равными (40,40), то после запуска
приложения кнопка зай мет верхнюю левую позицию в этом
контей нерном элементе.
FlowLayoutPanel является прокручиваемым элементом
управления. Полосы прокрутки активны, когда свой ству
AutoScroll задано значение True и отключены, если этому
свой ству задано значение False.
По умолчанию порядок следования элементов управления в
FlowLayoutPanel — справа налево. Такое поведение
контролируется свой ством FlowDirection, которому может быть
задано четыре значения заливки в FlowLayoutPanel: LeftToRight
— по умолчанию, RightlbLeft — справа налево, TopDown —
сверху вниз и BottomUp — снизу вверх .
Когда будет достигнут конец строки (при назначении
свой ству FlowDirection значения LeftToRtght или
RightToLeft) или столбца (в случае значения TopDown или
BottomUp), следующие элементы управления будут
перенесены либо не перенесены в начало следующей строки
или столбца в зависимости от того, какое значение задано
свой ству WrapContents.
Можно самостоятельно создавать разрывы в порядке
следования элементов управления, аналогичные разрыву
строк в тексте. Для управления заливкой элементов
управления требуется самостоятельно задать разрывы
заливки, когда свой ству WrapContents элемента управления
FlowLayoutPanel присвоено значение False. Если же
необходимо задать индивидуальные разрывы заливки, то
необходимо присвоить этому свой ству значение True.
Прервать заливку на каком-либо элементе управления
можно, вызвав метод SetFlowBreak элемента управления
FlowLayoutPanel.
Создание разрыва заливки на элементе, содержащем
элемент управления FlowLayoutPanel
Задать разрыв заливки с помощью метода
SetFlowBreak, как показано в следующем
примере (который предполагает, что элемент
управления FlowLayoutPanel с именем
FlowLayoutPanel1 и кнопка Button1 уже
созданы):

flowLayoutPanel1.SetFlowBreak(button1, true);

Независимо от того, есть ли в элементе управления FlowLayoutPanel


свободное место для продолжения заливки элементов, элемент
управления, которому с помощью этого метода был задан разрыв
заливки, перей дет на следующую строку (или в следующий столбец, в
зависимости от значения свой ства FlowDirection) элемента управления
FlowLayoutPanel.
Можно узнать, был ли задан разрыв заливки конкретному элементу
управления, вызвав метод GetFlowBreak, как показано в следующем
примере:
if (flowLayoutPanel1.GetFlowBreak(button1))
{// Обработка}
Основные свойства и методы FlowLayoutPanel
Свойство/метод Описание
Свойство. Определяет, будет ли элемент управления
FlowLayoutPanel отображать полосы прокрутки, когда элементы
AutoScroll находятся за пределами видимых границ элемента управления
Panel. Полосы прокрутки отображаются, когда свойству задано
True, и не отображаются в случае значения False

Свойство. Задает вид границы элемента управления


FlowLayoutPanel в зависимости от присвоенного ему значения:
BorderStyle
FixedSingle – тонкую, Fixed3D – объемную, а в случае значения
None – определяет отсутствие границы
Свойство. Задает направление заливки элементов в FlowLayoutPanel
FlowDirection в зависимости от присваемого ему значения: LeftToRight,
RightToLeft, TopBottom или BottomUp
Свойство. Определяет, будут ли элементы управления
WrapContents автоматически переходить в следующий столбец или строку при
изменении размеров FlowLayoutPanel

Метод. Возвращает значение типа Boolean, указывающее, был ли задан


GetFlowBreak
разрыв заливки конкретному элементу управления
Метод. Задает разрыв заливки элементу управления, расположенному в
SetFlowBreak
FlowLayoutPanel
Элемент управления TableLayoutPanel
Элемент управления TableLayoutPanel – это панель,
помогающая при проектировании и компоновке
пользовательского интерфей са; это таблица с ячей ками
для индивидуального размещения элементов
управления. Он представляет собой прокручиваемый
контей нер, предлагающий полосы прокрутки, когда
свой ству AutoScroll задано значение True.
Во время разработки элемент управления
TableLayoutPanel выглядит в форме как таблица,
состоящая из отдельных ячеек. Элементы управления
можно перетаскивать из Toolbox в любую ячей ку. Как
правило, в одну ячей ку помещается только один элемент
управления, хотя при сложном оформлении
пользовательского интерфей са в ячей ки элемента
управления TableLayoutPanel можно поместить другие
контей нерные элементы управления, каждый из
которых может содержать множество элементов.
Во время выполнения вид ячеек таблицы и их поведение
определяется свой ством CellBorderStyle в зависимости
от заданного ему значения: Single, Inset, InsetDouble,
Outset, OutsetDouble или OutsetPartial. Когда этому
свой ству присваивается значение None, то линии ячеек
отображаться не будут.
Столбцами и строками TableLayoutPanel управляют
коллекции ColumnStyles и RowStyles. Во время
разработки можно задать стили полям и столбцам,
выбрав в окне Properties коллекцию ColumnStyles или
RowStyles и открыв редактор Column And Row Styles. С
помощью этого редактора можно изменять стили
столбцов и строк, присваивая им различные значения.
Так, в случае значения Absolute столбцам и строкам
будет назначен фиксированный размер в пикселях,
значение Relative задает процентную часть от размера
всех столбцов или строк этого стиля, а значение AutoSize
определяет размер столбцов и строк автоматически.
Добавление элемента управления в TableLayoutPanel
во время выполнения
1. Объявить и создать экземпляр нового элемента управления в коде.
Button Button1=new Button();
Button1.Text = "Кнопка";
//Задание фоновый цвет кнопки
Button1.BackColor = System.Drawing.SystemColors.ActiveCaption;
//Задание цвет текста кнопки
Button1.ForeColor = System.Drawing.SystemColors.ActiveCaptionText;

2. Добавить элемент управления с помощью


метода TableLayoutPanel.ControlsAdd.

Далее следует пример:

// Добавление кнопки в следующую


доступную ячейку

tableLayoutPanel1.Controls.Add(Button1);

// Добавление кнопки в ячейку (2,2)

tableLayoutPanel1.Controls.Add(Button1,2,2);
Основные свойства и методы элемента управления TableLayoutPanel

Свойство/метод Описание

Свойство. Определяет, будет ли TableLayoutPanel отображать полосы


прокрутки, когда элементы находятся за пределами видимых границ
AutoScroll элемента управления Panel. Полосы прокрутки отображаются, когда
свойству задано значение True, и не отображаются в случае значения
False

Свойство. В зависимости от присвоенного ему значения определяет вид


CellBorderStyle границы ячейки либо отображает ячейку без границы, если задано
значение None
Свойство. Указывает число столбцов. Добавить или удалить столбцы
ColumnCount
можно, увеличив или уменьшив значение свойства ColumnCount
Свойство. Представляет собой коллекцию столбцов и доступно только
Columns во время разработки. При обращении к этому свойству запускается
редактор Column And Row Styles
Свойство. Представляет собой коллекцию стилей для столбцов и
ColumnStyles
доступно только во время выполнения
Свойство. Отображает рост элемента управления TableLayoutPanel,
GrowStyle когда в него добавляются новые элементы. Данному свойству можно
присвоить значение AddColumns, AddRows или FixedSize
Свойство. Указывает число строк. Добавить или удалить строки
RowCount
можно, увеличив или уменьшив значение свойства RowCount
Свойство. Представляет собой коллекцию строк и доступно только
Rows во время разработки. При обращении к нему запускается редактор
Column And Row Styles
Свойство. Представляет собой коллекцию стилей для строк и
RowStyles
доступно только во время выполнения
Метод коллекции Controls. Используется для добавления элемента
ControlsAdd
управления в следующую доступную ячейку или в конкретную
ячейку с указанными координатами столбца и строки
Элемент управления TabControl
TabControl дает возможность группировать наборы элементов управления
на вкладках, похожих на записи в картотеке или разделители в записной
книжке. Он служит в качестве контей нера для одного или более элементов
управления TabPage, которые, в свою очередь, тоже содержат элементы
управления. У каждого элемента управления TabPage есть свой
собственный набор свой ств, который можно отредактировать во время
разработки. Для этого необходимо открыть TabPage Collection Editor.
Отдельные элементы управления TabPage можно прокручивать, а если
свой ству AutoScroll задать значение True, они будут отображать полосы
прокрутки.
У элементов управления TabPage есть
свой ство Text, которое представляет
текст на корешке вкладки в элементе
управления TabControl. Кроме того, у
элементов управления TabPage есть
свой ство BorderStyle со значениями
None, FixedSingle и Fixed3D. У
элемента управления TabControl есть
несколько свой ств, с помощью
которых можно настроить его
внешний вид и поведение.

Так, свой ство Appearance отвечает за внешний вид вкладки.


Свой ство Alignment определяет расположение вкладок в
элементе управления TabControl. У элемента управления
TabControl есть также свой ство Multiline, которое
определяет, может ли он отображать корешки более чем в
один ряд.
Основные свойства элемента управления TabControl

Свойство Описание
Определяет визуальный стиль элемента управления
Appearance
TabControl.
Задает расположение закладок в элементе управления
Aligment
TabContol (сверху, снизу, справа или слева)
Определяет, возможно ли отображение более одного ряда
Multiline
вкладок в элементе управления TabControl.
Представляет собой коллекцию элементов управления
TabPages
TabPage, расположенных в TabControl.
Элемент управления SplitContainer

Элемент управления SplitContainer создает подраздел формы, где


Splitter разделяет его на два элемента управления SplitterPanel.
Пользователь с помощью мыши может переместить Splitter, изменяя
таким образом относительный размер каждого элемента управления
SplitterPanel. По умолчанию свой ству Dock задано значение Fill
Два дочерних элемента управления SplitterPanel доступны благодаря
свой ствам элемента управления SplitContainer — Раnеl1 и Раnеl2. С их
помощью можно также получать доступ к свой ствам элементов
управления SplitterPanel, которые находятся в SplitContainer.
Элементы управления SplitterPanel содержат в себе элементы
управления и отделены от других форм. SplitterPanel могут отображать
полосы прокрутки. У отдельных элементов управления SplitterPanel
нет собственных границ, поэтому у них нет свой ства BorderStyle. У
самого же элемента управления SplitContainer данное свой ство
присутствует. Подобно свой ству BorderStyle элемента управления
Panel, ему можно задать значение None, FixedSingle или Fixed3D. С
установкой свой ства BorderStyle изменяется внешний вид Splitter.
Чтобы заблокировать возможность передвижения Splitter
пользователем с помощью свой ства IsSplitterFixed, нужно
задать последнему значение True.

Ширину Splitter можно изменить, задав значение свой ству


SplitterWidth, которое также представлено в пикселях.
Пример кода:
splitContainer1.SplitterDistance = 79;
Скрыть одну из панелей элемента управления SpIitContainer
можно с помощью свой ства Panel1Collapsed или
Panel2Collapsed.
splitContainer1.Panel1Collapsed=true;

С помощью свой ств Panel1MinSize и Panel2MinSize можно


назначить отдельным панелям минимальный размер в
пикселях.
Пример кода:
splitContainer1.Panel1MinSize = 30;
splitContainer1.Panel2MinSize = 20;
Основные свойства элемента управления SpIitContainer
Свойство Описание
Задает вид границы TabPage в зависимости от
присвоенного ему значения: FixedSingle – тонкую,
BorderStyle
Fixed3D – объемную, а в случае значения None –
определяет отсутствие границы
Представляет панель с фиксированным размером
FixedPanel элемента управления SplitContainer посредством значения
Panel1 или Panel2. Значение None означает, что ни у
одной панели нет фиксированного размера
IsSplitterFixe Определяет, зафиксировано ли положение Splitter так,
d чтобы пользователь не мог его передвинуть
Задает горизонтальное или вертикальное расположение
Orientation Splitter в элементе управления SplitContainer посредством
значений Horisontal или Vertical соответственно
Предоставляет свойства Splitter1 элемента управления
Panel1
SplitContainer
Panel1Collap Определяет, скрыта SplitterPanel1 или нет. Панель
sed скрыта, если данному свойству задано значение True
Panel1MinSiz
Назначает минимальный размер Panel1
e
Предоставляет свойства SplitterPanel2 элемента
Panel2
управления SplitContainer
Определеяет, скрыта SplitterPanel2 или нет.
Panel2Coll
Панель скрыта, если данному свойству задано
apsed
значение True
Panel2MinS
Задаёт минимальный размер Panel2
ize
Представляет расстояние от Splitter до верхнего
SplitterDist
или левого края формы в зависимости от значения
ance
свойства Orientation
SplitterWidt
Задаёт ширину Splitter в пикселях
h
Резюме
С помощью контей нерных элементов управления можно группировать и
размещать элементы управления в форме.
Контей нерные элементы управления включают в себя Panel, GroupBox,
FlowLayoutPanel, TableLayoutPanel и SplitContainer.
Как правило, элементы управления GroupBox используются для
группировки элементов управления RadioButton.
Элементы управления Panel создают самостоятельные подразделы формы.
Элементы управления FlowLayoutPanel и TableLayoutPanel являются
производными от элемента управления Panel, который обеспечивает
дополнительные возможности размещения.
SplitContainer содержит два элемента управления: SplitterPanel и Splitter.
Пользователь может изменить размеры панелей , передвинув Splitter.
Элемент управления TabControl поддерживает коллекцию элементов
управления TabPage, каждый из которых работает подобно
самостоятельным панелям. Во время выполнения можно выбрать любую
вкладку, щелкнув соответствующий корешок, расположенный на краю
элемента управления вкладки.

Вам также может понравиться