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?


 

А также другие работы, которые могут Вас заинтересовать

33660. СМЕШАННЫЙ ШИФР (АЛГОРИТМ ГОСТ + ЭЛЬ ГАМАЛЯ) 32 KB
  К тому же ни одна из реализаций систем с открытым ключом предложенных до сих пор не может конкурировать в скорости с системами с секретным ключом такими например как DES или ГОСТ. Когда необходимо передать большое количество информации может оказаться что использование криптоалгоритмов с открытым ключом было бы слишком медленным тогда как использование симметричных алгоритмов было бы либо невозможным изза отсутствия разделенного секретного ключа либо не отвечающим требованиям секретности. Гибридная смешанная криптосистема...
33661. БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ DES, РЕЖИМ ECB) 54.5 KB
  В режиме ЕСВ каждый блок открытого текста заменяется блоком шифротекста. Распространение ошибки: При расшифровании ошибки в символах шифротекста ведут к некорректному расшифрованию соответствующего блока открытого текста однако не затрагивают остальной открытый текст. При случайной потере или добавлении лишнего бита шифротекста весь последующий шифротекст будет расшифрован некорректно если только для выравнивания границ блоков не используется какоенибудь выравниевания по границам блока. Режим CBC В режиме...
33662. Режимы тройного шифрования из 23 57.5 KB
  Тройное шифрование в режиме СВС Оба режима требуют больше ресурсов чем однократное шифрование: больше времени или больше аппаратурыф БЛОЧНОЕ КОДИРОВАНИЕ АЛГОРИТМ 3DES SDES В ряде реализаций DES используется тройной алгоритм DES см. Так как преобразование DES не является группой полученный шифротекст гораздо труднее вскрыть полным перебором: 2112 попыток вместо 256 Рис. Тройной DES SDES Упрощенный DES или SDES алгоритм шифрования который носит скорее учебный чем практический характер. В данной лабораторной работе SDES...
33663. БЛОЧНОЕ КОДИРОВАНИЕ (АЛГОРИТМ DES, РЕЖИМ CFB) 98 KB
  БЛОЧНОЕ КОДИРОВАНИЕ АЛГОРИТМ DES РЕЖИМ CFB Криптографический режим обычно объединяет базовый шифр обратную связь какогото типа и нескольких простых операций. Опреации просты поскольку стойкость определяется используемым алгоритмом шифрования а не режимом. Требования предъявляемые к режимам: Режим не должен снижать стойкость используемого алгоритма Эффективность режима не должна быть ниже чем у используемого алгоритма Отказоустойчивость устойчивость к потерям синхронизации процессов шифрования и дешифрования. Режим CFB Блочный...
33664. ПРОТОКОЛ SSH. АРХИТЕКТУРА 50 KB
  ПРОТОКОЛ SSH. Протокол SSH Secure Shell безопасная оболочка чаще всего используется для создания безопасной оболочки для доступа к другим хостам и передачи файлов по сети для безопасности аутентификации и для обеспечения конфиденциальности данных. SSH поддерживается мощное шифрование и продвинутые методы идентификации пользователей которые прошли проверку временем. Часто SSH используют для удаленного управления напр Telnet.
33665. Проблемы безопасности протоколов прикладного уровня 39 KB
  Проблемы безопасности протоколов прикладного уровня Прикладной уровень в семействе TCP IP представлен следующими службами: Служба разрешения имён DNS. Для защиты DNS существуют два направления: переход на защищённый протокол DNSSec; разделение пространства имён с целью сокрытия внутреннего пространства имён от внешнего мира. Разделение пространства имён. В то же время для внешнего пользователя достаточно иметь доступ только к небольшой части внутреннего пространства имён.
33666. Реализация корпоративной службы DNS 499.5 KB
  Реализация корпоративной службы DNS При традиционной схеме реализации корпоративной службы DNS вся информация о домене организации размещена на первичном сервере и доступна любому желающему рис. Даже если принять какието меры по защите первичного сервера есть ещё вторичный сервер расположенный у провайдера.8 Один из вариантов решения двухсерверная конфигурация рис. Двухсерверная конфигурация Рис.
33667. МОДЕЛЬ БЕЗОПАСНОСТИ ОС WINDOWS В СЕТИ. КОМПОНЕНТЫ БЕЗОПАСНОСТИ. УЧЕТНЫЕ ЗАПИСИ 69 KB
  МОДЕЛЬ БЕЗОПАСНОСТИ ОС WINDOWS В СЕТИ. КОМПОНЕНТЫ БЕЗОПАСНОСТИ. Существующие разнообразные сетевых операционные системы поразному подходят к построению системы безопасности. Операционная система Windows Server 2003 согласно заверениям Microsoft соответствует классу безопасности С2.
33668. РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЕЙ. ПРАВА ПОЛЬЗОВАТЕЛЕЙ. ОБЪЕКТЫ ДОСТУПА. ПОЛУЧЕНИЕ ДОСТУПА 47.5 KB
  РЕГИСТРАЦИЯ ПОЛЬЗОВАТЕЛЕЙ. ПРАВА ПОЛЬЗОВАТЕЛЕЙ. Группы исп для объединения пользователей с одинаковой потребностью в доступе к определенным объектам системы. Права пользователей user rights.