НОУ ІНТУІТ, Лекція, Створення віконних програм Windows Forms

Розміщення у вікні елементів управління

Будемо називати наш клас, що успадковує відForm, вікном користувача. Розмістимо у вікні елемент керування типу кнопки, яка породжується класомButton. Усі елементи керування є візуальними і успадковують від класуControl. У наступній програмі показано, як створити об'єктButton, помістити його на поверхню форми та підключити обробник до подіїClickцієї кнопки. Продемонстровано різні способи налаштування та керування кнопками.

Використаний у функціїMain()методApplication.EnableVisualStyles()класу дозволяє встановити сучасний зовнішній вигляд для деяких елементів управління. Створена форма з кнопками буде такою

віконних

Розміщені на формі кнопки є її дочірніми об'єктами та розміщуються в колекціїControls. Враховуючи, що в нашому прикладі дочірніми елементами є лише дві кнопки, ми не вживали спеціальних заходів для їхнього розпізнавання. Але у складніших випадках елементам необхідно надавати імена у тому властивостіNameі розпізнавати вже за значенням цієї характеристики. Для пошуку конкретного об'єктаControlгодиться як простий перебір всіх елементів колекціїControlsформи, і методSystem.Windows.Forms.Control.ControlCollection.Find(string, bool).

Всі дочірні елементи форми розташовуються вZ-порядку(Z-послідовності), що визначає їх видимість на екрані, і можуть перекривати один одного. ПочатковийZ-порядок визначається порядком додавання елементів до форми та протилежний індексам елементів у колекції форми: пізніші елементи відображаються верхніми. Для зміниZ-порядку у процесіДля виконання програми використовуються методиBringToFront()іSendToBack()класуControl.

Створення розширень елементів керування

В об'єктно-орієнтованому програмуванні існує два способи передачі коду одного класу іншому: це композиція іуспадкування. Композицією називається створення екземпляра одного класу всередині іншого з подальшим використанням об'єкта, а успадкування передає код базового класу похідний неявно, зливаючи разом два або цілий ланцюжок класів.

Спадкування зазвичай застосовують до форм, а композицію - при розміщенні на формі бібліотечних елементів управління. Але бібліотечні елементи керування також можна використовувати як базові під час наслідування, розширюючи їх похідним класом.

Для прикладу створимо клас, що розширює бібліотечний класButton, в якому визначимо таку поведінку кнопки, що якщо напис на ній не перевищує задану довжину, вона залишається недоступною на формі. Для зміни напису кнопки передбачимо текстове поле типуTextBox.