Ієрархія класів Control
Форма є контейнером, в якому розміщуються елементи керування (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.
Рис. 1. Ієрархія класів Control
Заголовки (Label) і текстові поля (TextBox)
Клас Label (мітка) дозволяє виводити на форму текстову інформацію.
Клас TextBox походить безпосередньо від класу TextBoxBase, забезпечує загальними можливостями як TextBox, так і RichTextBox. Властивості, визначені в TextBoxBase. Основні властивості:
Таблиця 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. Обробник події можна використовувати для перевірки допустимості символів, що вводяться користувачем (наприклад, припустимо, що користувач повинен вводити в полі тільки цифри або, навпаки, тільки букви).
Приклад 1. Обробник події KeyPress для поля txtDisc, в яке можно вводити тільки літери
private void txtDisc_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar))
{
e.Handled = true;
MessageBox.Show("Поле не може містити цифри");
}
}
Призначення текстовому полю обробника події виконується у вікні Propery (Events) для події KeyPress.
Приклад 2.
Якщо поле може містити тільки цифри, то обробник може бути таким:
private void txtPIN_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) )
{
e.Handled = true;
lbloutput.Text ="Поле PIN повинно бути числовим";
}
}
Примітка
Подія KeyPress блокує частину клавіатури.
Крім властивостей, визначених в TextBoxBase, кожний похідний клас має власні властивості. В табл. 3.9 перелічені основні властивості класу TextBox.
Таблиця 9. Основні властивості класу TextBox
Властивість | Призначення |
AcceptsReturn | Дозволяє визначити, що буде, коли користувач при введенні тексту натисне на Enter. Варіанту два: або в TextBox починається новий рядок тексту, або активізується кнопка за замовчанням на формі |
CharacterCasing | Дозволяє вибрати символ, який використовується для відображення даних, що вводяться користувачем (в полі для введення пароля) |
ScrollBars | Дозволяє отримати або встановити значення, яке визначає, чи будуть в TextBox з декількома рядками смуги прокрутки |
TextAlign | Дозволяє визначити вирівнювання тексту в TextBox |
Дата: 2019-02-25, просмотров: 246.