Форма є контейнером, в якому розміщуються елементи керування (Controls) та компоненти.
Елементи керування — це компоненти, що забезпечують взаємодію між користувачем і програмою. Ці елементи розміщені в вікні Toolbox. Базовим класом є клас Control.
У вікні Toolbox елементи згруповані у групи за їх призначенням. Основні групи елементів:
Група командних об'єктів
Елементи Button, LinkLabel, ToolBar реагують на натискання кнопки миші і негайно запускають яку-небудь дію.
Група текстових об'єктів
Більшість застосунків надають можливість користувачу вводити текст і, у свою чергу, виводять різну інформацію у вигляді текстових записів. Елементи TextBox, RichTextBox приймають текст, а елементи Label, StatusBar виводять його. Для обробки введеного користувачем тексту, як правило, слід натискувати на один або декілька елементів з групи командних об'єктів.
Група перемикачів
До цієї групи входятьоб'єкти класів: ComboBox, ListBox, ListView, TreeView, NumericUpDown і інші.
Група контейнерів
Елементи-контейнери дозволяють групувати елементи. Як правило, елементи цієї групи розташовані на формі, служать підкладкою кнопкам, текстовим полям, спискам — тому вони і називаються контейнерами. Елементи Panel, GroupBox, TabControl, крім всього іншого, розділяють можливості застосунку на логічні групи, забезпечуючи зручність роботи.
Група графічних елементів
Для розміщення і відображення на формі графічних елементів (піктограм, зображень, заставок) використовуються елементи Image List, Picture Box.
PictureBox – об’єкт-контейнер для вставки зображень.
Діалогові вікна
Виконуючи різні операції з документом — відкриття, збереження, друк, попередній перегляд, — ми стикаємося з відповідними діалоговими вікнами. Класи OpenFileDialog, SaveFile Dialog, ColorDialog, PrintDialog містять вже готові операції для роботи з цими елементами.
Група меню
Містить елементи для створення різних типів меню: звичайного, панелі інструментів, контекстного меню.
На рис. 3.1. зображено ієрархію класів Control.
Рис. 3.1. Ієрархія класів Control
Заголовки (Label) і текстові поля (TextBox)
Клас Label (мітка) дозволяє виводити на форму текстову інформацію.
Клас TextBox походить безпосередньо від класу TextBoxBase, забезпечує загальними можливостями як TextBox, так і RichTextBox. Властивості, визначені в TextBoxBase. Основні властивості:
Таблиця 3.8. Основні властивості класу TextBoxBase
Властивість
Призначення
Name
Назва поля (ідентифікатор)
Text
Текст
AutoSize
Визначає, чи буде елемент управління автоматично змінювати розмір при зміні шрифту на ньому
BackColor, ForeColor
Дозволяють отримати або встановити значення кольору фону і переднього плану
HideSelection
Дозволяє отримати або встановити значення, визначальне, чи буде текст в TextBox залишатися виділеним після того, як цей елемент управління буде виведений з фокусу
MaxLength
Визначає максимальну кількість символів, яка можна буде ввести в TextBox
Modified
Дозволяє отримати або встановити значення, що визначає, чи був текст в TextBox змінений користувачем
Multiline
Указує, чи може TextBox містити декілька рядків тексту
Readonly
Позначає TextBox як доступний тільки для читання"
SelectedText, SelectionLength
Містять виділений текст (або певну кількість символів) в TextBox
SelectionStart
Дозволяє отримати початок виділеного тексту в TextBox
Wordwrap
Визначає, чи буде текст в TextBox автоматично переноситися на новий рядок досягши граничної довжини рядка
В TextBoxBase визначено методи для роботи з буфером обміну (Cut, Copy і Paste), відміною введення (Undo) і іншими можливостями редагування (Clear, AppendText і т. п.).
З усіх подій, визначених в TextBoxBase, найбільший інтерес представляє подія TextChange. Ця подія відбувається при зміні тексту в об'єкті класу, похідному від TextBoxBase. Обробник події можна використовувати для перевірки допустимості символів, що вводяться користувачем (наприклад, припустимо, що користувач повинен вводити в полі тільки цифри або, навпаки, тільки букви).
Приклад 3.1. Обробник події KeyPress для поля txtDisc, в яке можно вводити тільки літери
Крім властивостей, визначених в TextBoxBase, кожний похідний клас має власні властивості. В табл. 3.9 перелічені основні властивості класу TextBox.
Таблиця 3.9. Основні властивості класу TextBox
Властивість
Призначення
AcceptsReturn
Дозволяє визначити, що буде, коли користувач при введенні тексту натисне на Enter. Варіанту два: або в TextBox починається новий рядок тексту, або активізується кнопка за замовчанням на формі
CharacterCasing
Дозволяє вибрати символ, який використовується для відображення даних, що вводяться користувачем (в полі для введення пароля)
ScrollBars
Дозволяє отримати або встановити значення, яке визначає, чи будуть в TextBox з декількома рядками смуги прокрутки