Вкладки TabControl та перемикачі RadioButton

Вкладки програмують для організації керування проектом та оптимального використання екранного простору. Прикладом застосування вкладок є діалогове вікно Свойства обозревателя Internet Explorer. Тобто, якщо потрібно відобразити велику кількість інформації, доцільно звернути увагу на вкладки TabControl.

Спробуємо написати програму, яка дозволятиме обрати текст з двох варіантів, задати колір та розмір шрифту цього тексту на трьох вкладках TabControl з використанням перемикачів RadioButton

Для початку завантажимо Visual Studio 2010 та обираємо пункт меню Файл – Создать проект (File | New | Project).  У наступному вікні New Project обираємо пункт Visual Basic, а потім в області шаблонів (середня колонка) обираємо шаблон (Templates) Windows Forms Application. В якості назви проекту введемо ім’я Вкладки та перемикачі і натиснемо кнопку ОК

Далі з панелі елементів керування Toolbox перемістимо на форму елемент керування TabControl.

Як видно, за замовчуванням передбачено лише дві вкладки, а за умовою задачі нам потрібно три. Третю вкладку можна додати в конструкторі форм, а можна і програмним методом. 

 

Спочатку покажемо, як додати третю вкладку в конструкторі. Для цього у властивостях (вікно Properties) елемента керування TabControl обираємо властивість TabPages

В результаті потрапляємо в діалогове вікно TabPage Collection Edit, де додаємо (кнопка Добавить (Add)) третю вкладку (перші дві присутні за замовчуванням).

Ці вкладки нумеруються від нуля, тобто третя вкладка визначається як TabPages(2).

Назву кожної вкладки будемо вказувати в програмному коді.

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

Тепер подвійним кліком в межах форми створюємо порожній обробник події завантаження форми:

 Public Class Form1

    'Програма дозволяє обрати текст з двох варіантів, його колір та розмір

    'на трьох вкладках TabControl, використовуючи перемикачі RadioButton

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _

                           Handles MyBase.Load

        'Для початку створимо нову вкладку елемента TabControl:

        Dim TabPage3 = New TabPage() 'Створення нового об'єкта

        TabPage3.UseVisualStyleBackColor = True 'задаємо створеній вкладці стиль за замовчуванням

        'Додаємо створену вкладку в існуючий набір вкладок TabControl

        Me.TabControl1.Controls.Add(TabPage3)

        'Створюємо на новій вкладці два перемикачі RadioButton:

        TabPage3.Controls.Add(Me.radioButton5)

        TabPage3.Controls.Add(Me.RadioButton6)

        'Розташовуємо нові перемикачі на вкладці

        Me.RadioButton5.Location = New Point(20, 15)

        Me.RadioButton6.Location = New Point(20, 60)

        'Задаємо початкові властивості елементам керування форми:

        Me.Text = "Вкладки та перемикачі"

        'Задаємо назви вкладкам:

        TabControl1.TabPages(0).Text = "Текст"

        TabControl1.TabPages(1).Text = "Колір"

        TabControl1.TabPages(2).Text = "Розмір"

        'Задаємо значення елементам керування RadioButton:

        RadioButton1.Text = "Як умру то поховайте," + vbCrLf + _

                            "мене на могилі..."

        'тут константа vbCrLf позначає переніс курсора на нову стрічку

        RadioButton1.Location = New Point(20, 15)

        RadioButton1.Checked = True

        RadioButton2.Text = "Садок вишневий коло хати, " + vbCrLf + "хрущі над вишнями гудуть"

        RadioButton2.Location = New Point(20, 60)

        RadioButton3.Text = "Червоний"

        RadioButton3.Location = New Point(20, 15)

        RadioButton4.Text = "Зелений"

        RadioButton4.Location = New Point(20, 60)

        RadioButton5.Text = "10 пунктів"

        RadioButton6.Text = "14 пунктів"

        Label1.Text = RadioButton1.Text

    End Sub

 

    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, _

                                            ByVal e As System.EventArgs) _

                                            Handles RadioButton1.CheckedChanged

        Label1.Text = RadioButton1.Text

    End Sub

 

    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, _

                                            ByVal e As System.EventArgs) _

                                            Handles RadioButton2.CheckedChanged

        Label1.Text = RadioButton2.Text

    End Sub

 

    Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, _

                                            ByVal e As System.EventArgs) _

                                            Handles RadioButton3.CheckedChanged

        Label1.ForeColor = Color.Red

    End Sub

 

    Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, _

                                            ByVal e As System.EventArgs) _

                                            Handles RadioButton4.CheckedChanged

        Label1.ForeColor = Color.Green

    End Sub

 

    Private Sub RadioButton5_CheckedChanged(ByVal sender As System.Object, _

                                            ByVal e As System.EventArgs) _

                                            Handles RadioButton5.CheckedChanged

        Label1.Font = New Font(Label1.Font.Name, 10.0F)

    End Sub

 

    Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object, _

                                            ByVal e As System.EventArgs) _

                                            Handles RadioButton6.CheckedChanged

        Label1.Font = New Font(Label1.Font.Name, 14.0F)

    End Sub

End Class

 Як видно з лістингу програми, при обробці події завантаження форми Form1_Load "програмно" створюється третя вкладка. Відмітимо. Що ми її оголосили з використання ключового слова Dim, причому тип змінної TabPage3 визначається з виразу ініціалізації (як оголошення var в C#). Далі додамо нову вкладку TabPage3 в набір вкладок TabControl1, створений в конструкторі. Потім прив’язуємо п’ятий та шостий перемикачі до третьої вкладки. Подальші установки є зрозумілими і на мій погляд не потребують додаткових коментарів. Відмітимо лише, що кожна пара перемикачів, які розміщені на окремих вкладках заперечують один одного, тобто, якщо користувач обрав один перемикач то інший переходить в протилежний стан. Відслідковувати зміну стану перемикачів зручно використовувати обробку події перемикачів CheckChanged. Щоб отримати порожній обробник цієї події в конструкторі форм, необхідно двічі клікнути на відповідному перемикачі і таким чином запрограмувати зміни стану перемикачів.

Зовнішній вигляд проекту поданий на малюнку: