Вкладки 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. Щоб отримати порожній обробник цієї події в конструкторі форм, необхідно двічі клікнути на відповідному перемикачі і таким чином запрограмувати зміни стану перемикачів.
Зовнішній вигляд проекту поданий на малюнку: