69084

Клас BUTTONBASE і його нащадки: Кнопки, прапорці та перемикачі

Лекция

Информатика, кибернетика и программирование

Клас ButtonBase в ієрархії класів .NET забезпечує загальні можливості для групи похідних від нього класів: Button, CheckBox і RadioButton. Деякі властивості класу ButtonBase описані в табл.4.1. Крім спільних властивостей кожний з класів має власні властивості.

Украинкский

2014-09-29

45.41 KB

1 чел.

6

Лекція 4. Клас BUTTONBASE і його нащадки: Кнопки, прапорці та перемикачі  

План

4.1. Клас ButtonBase і його основні властивості

4.2. Елемент кнопка. Клас Button

4.3. Елемент прапорець - клас CheckBox

4.4. Елемент перемикач – клас RadioButton

4.5. Активація і деактивація елементів

4.6. Приховування елементів

4.7. Динамічне створення елементів

4.1. Клас ButtonBase і його основні властивості

Клас ButtonBase в ієрархії класів .NET забезпечує загальні можливості для групи похідних від нього класів: Button, CheckBox і RadioButton. Деякі властивості класу ButtonBase описані в табл.4.1. Крім спільних властивостей кожний з класів має власні властивості.

Таблиця 4.1. Властивості класу ButtonBase

Властивість

Призначення

FlatStyle

Дозволяє налаштувати "рельєфність" кнопки. Використовуються значення з переліку можливих значень властивості FlatStyle

Image

Дозволяє задати зображення, яке буде виводитися на кнопці (при цьому можна вказати точне місцезнаходження зображення). Фоновий рисунок краще налаштовувати за допомогою властивості BackgroundImage, яка визначена в базовому класі Control

ImageAlign

Дозволяє визначити вирівнювання зображення, розміщеного на кнопці. Використовуються значення з переліку можливих значень властивості ContentAlignment

Imagelndex, ImageList

Ці властивості використовуються для роботи з набором зображень (об'єктом ImageList), що виводяться на кнопці

IsDefault

Визначає, чи буде ця кнопка кнопкою за замовчанням (тобто спрацьовувати при натисненні на Enter)

TextAlign

Дозволяє отримати або встановити вирівнювання тексту на кнопці.

4.2. Елемент Кнопка. Клас Button

Кнопка (button) - це найпростіший і найбільш застосовний з усіх елементів керування. Дозволяє організувати керування формою. Основні властивості класу наслідуються від ButtonBase і Control.

Найбільш використовувана подія кнопки - Click, яка виникає при натисненні на кнопку лівою кнопкою миші. Наприклад, для того, щоб закрити форму при натисненні на кнопку Завершити, в  обробнику кнопки викликаємо метод Close()?

 private void btmClose_Click(object sender, EventArgs e)

       {

         Close();

       }

Якщо рішення містить декілька форм, то для завершення роботи в обробнику кнопки викликаємо метод Application.Exit().

 private void btmClose_Click(object sender, EventArgs e)

       {

           Application.Exit();

       }

4.3. Елемент Прапорець (клас CheckBox).

Для прапорця (клас CheckBox) передбачено три можливі стани. Як і тип Button, клас CheckBox успадковує більшу частину своїх властивостей від базових класів Control і ButtonBase. Проте в цьому класі існують і свої власні члени, що забезпечують додаткові унікальні можливості (табл. 4.2).

Таблиця 4.2. Основні властивості класу CheckBox

Властивість

Призначення

Appearance

Налаштовує вигляд прапорця. Для цієї властивості використовуються значення з переліку можливих значень Appearance

AutoCheck

Дозволяє отримати або встановити значення, яке визначає, чи будуть значення Checked і CheckState, а також зовнішній вигляд прапорця автоматично змінюватися при клацанні на ньому

CheckAlign

Дозволяє встановити горизонтальне і вертикальне вирівнювання прапорця (квадратика) в елементі CheckBox. Використовуються значення з переліку ContentAlignment

Checked

Повертає значення типу bool, що представляє поточний стан прапорця (вибраний або не вибраний) Якщо для властивості ThreeState встановлено значення true, то властивість Checked буде повертати true як для явно вибраного прапорця, так і для того прапорця, для якого встановлено значення не “визначено” (indeterminate)

CheckState

Дозволяє отримати або встановити значення прапорця (встановлений - не встановлений - не визначено), використовуючи не true і false, як в Checked, а три значення з переліку CheckState. Звичайно використовується, якщо властивість ThreeState для прапорця має значення true (тобто він допускає три значення).

ThreeState

Визначає, чи будуть для прапорця використовуватися три значення (з переліку CheckState) або тільки два

Enabled

Повертає або задає значення, що визначає, чи активний елемент. Можливі значення: активний – true, інакше -false

Можливі стани прапорця (Indeterminate можна використовувати тільки тоді, коли для властивості ThreeState встановлено значення true) наведено в таблиці 4.3.

Таблиця 4.3. Можливі стани прапорця

Checked

Прапорець встановлений

Indeterminate

Значення не визначено (звичайно прапорець виглядає як "сірий", затіняє)

Unchecked

Прапорець знятий

4.4. Елемент Перемикач (Клас RadioButton)

Клас RadioButton (перемикач) можна сприймати, як видозмінений прапорець, при цьому схожість між цими типами підкреслюється майже повним збігом наборів членів. Між типами RadioButton і CheckBox існують лише дві важливі відмінності: в RadioButton передбачено подію CheckedChanged (яка виникає при зміні значення Checked), а крім того, RadioButton не підтримує властивість ThreeState і не може приймати стан Indeterminate (не визначено).

Таблиця 4.4. Основні властивості класу RadioButton

Властивість

Призначення

Text

Дозволяє отримати або встановити текст, який розміщений на перемикачі

AutoCheck

Дозволяє отримати або встановити значення, яке визначає, чи будуть значення Checked і CheckState, а також зовнішній вигляд перемикача автоматично змінюватися при клацанні на ньому

TextAlign

Дозволяє встановити горизонтальне і вертикальне вирівнювання тексту на перемикачі

Checked

Повертає значення типу bool, що представляє поточний стан перемикаяа (вибраний або не вибраний). Якщо перемикач включений, значення Checked = true, інакше - false.

CheckState

Дозволяє отримати або встановити значення прапорця (встановлений - не встановлений - не визначено), використовуючи не true і false, як в Checked, а три значення з переліку CheckState. Звичайно використовується, якщо властивість ThreeState для прапорця має значення true (тобто він допускає три значення).

Enabled

Повертає або задає значення, що визначає, чи активний елемент. Можливі значення: активний – true, інакше -false.

Приклад 4.1.

private void ClickMyRadioButton()

{

  if (radioButton2.Checked)

  {

     radioButton1.PerformClick();

  }

}

При виборі перемикача генерується подія CheckedChanged:

private void radioButton1_CheckedChanged(object sender, EventArgs e)

       {

      

        }

Перемикачі завжди використовуються в групах, які розглядаються як єдине ціле. Усередині групи перемикачів одночасно може бути вибраний тільки один перемикач. Для угрупування перемикачів в групи використовується тип GroupBox.

І прапорець (CheckBox), і перемикач (RadioButton) підтримують властивість Checked, за допомогою якої зручно одержувати інформацію про стан відповідно прапорця і перемикача. Проте якщо є необхідність задіювати додатковий третій стан прапорця (не визначено - Indeterminate), то доведеться замість Checked використовувати властивість CheckState і значення з однойменного переліку CheckState.

Властивість Checked частіше за все використовується в коді.

4.5. Активація і деактивація елементів

Використання властивості Enabled дозволяє зробити елемент активним чи неактивним. Використовується частіше для динамічної зміни стану в коді.

4.6. Приховування елементів

Властивість елемента Visible дозволяє приховати чи зробити видимим елемент на формі. Значення Visible=true робить елемент видимим, Visible=false приховує елемент.

4.7. Динамічне створення елементів в коді

Створити елемент і налаштувати його властивості можна як в режимі дизайнера (статично), так і в самому коді форми (динамічно).

Приклад 4.2.

Створення групи з елементами RadioButton

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Lab3

{

   public partial class Form1 : Form

   {

       private GroupBox groupBox1;

       private RadioButton radioButton2;

       private RadioButton radioButton1;

       public Form1()

       {

           InitializeComponent();

       }

       public void InitializeRadioButtons()

       {

           this.groupBox1 = new System.Windows.Forms.GroupBox();

           this.radioButton2 = new System.Windows.Forms.RadioButton();

           this.radioButton1 = new System.Windows.Forms.RadioButton();

           this.groupBox1.Controls.Add(this.radioButton2);

           this.groupBox1.Controls.Add(this.radioButton1);

           this.groupBox1.Location = new System.Drawing.Point(80, 75);

           this.groupBox1.Size = new System.Drawing.Size(200, 100);

           this.groupBox1.Text = "Radio Buttons";

           this.radioButton2.Location = new System.Drawing.Point(31, 53);

           this.radioButton2.Size = new System.Drawing.Size(67, 17);

           this.radioButton2.Text = "Choice 2";

           this.radioButton1.Location = new System.Drawing.Point(31, 20);

           this.radioButton1.Name = "radioButton1";

           this.radioButton1.Size = new System.Drawing.Size(67, 17);

           this.radioButton1.Text = "Choice 1";

           this.ClientSize = new System.Drawing.Size(292, 266);

           this.Controls.Add(this.groupBox1);

       }

       private void Form1_Load(object sender, EventArgs e)

       {

           InitializeRadioButtons();

       }

   }

}

Приклад 4.3.

Створення елементу CheckBox

     public void InstantiateMyCheckBox()

       {

           // Create and initialize a CheckBox.   

           CheckBox checkBox1 = new CheckBox();

           // Make the check box control appear as a toggle button.

           checkBox1.Appearance = Appearance.Button;

           // Turn off the update of the display on the click of the control.

           checkBox1.AutoCheck = false;

           // Add the check box control to the form.

           Controls.Add(checkBox1);

           checkBox1.Text = "Прапорець";

 }

Висновки

Для організації вибору та налаштування параметрів на формі використовуються перемикачі і прапорці. Основна відміна між ними в тому, що за допомогою прапорців можна вибрати декілька елементів. Крім того, прапорець може приймати три стани, а перемикач тільки два. Як і інші елементи,  їх можна створити в режимі дизайнера (статично) чи динамічно в коді. Основна властивість цих елементів Checked – визначає чи вибраний елемент.

Контрольні запитання і завдання

1. Яка властивість встановлює чи вимикає прапорець, в залежності від поточного значення?

2. Яке призначення властивості CheckState?

3. Яке призначення властивості Checked?

4. Яке призначення властивості Enabled?

5. Яке призначення властивості Visible і чим вона відрізняється від Enabled?

6. Що означає оператор new у виразі: 

  CheckBox checkBox1 = new CheckBox();

7. Що означають наступні команди?

          Controls.Add(checkBox1);

           checkBox1.Text = "Прапорець";

8. Що означають наступні команди?

       private GroupBox groupBox1;

       private RadioButton radioButton2;

       private RadioButton radioButton1;

9. Чи можна прапорець, який створений в режимі дизайна форми і видимий при її завантаженні, приховати. Якщо так, то як це можна зробити?

10. Яку властивість прапорця краще використовувати для зміни стану: Visible чи  Enabled?