| Приложение ⇒ проект options-r.rar
Занятие 21. Переключатели (RadioButton) и флажки (CheckBox)
Для реализации ветвления в проекте можно использовать такие элементы управления, как переключатели и флажки. Работая с текстовыми и графическими редакторами, редактором презентаций, другими программами, вы неоднократно видели, что:
- при выборе переключателя внутри появляется метка
- при выборе флажка - метка
.
Напомним:
- из группы переключателей может быть выбран только один,
- а в группе флажков метка может быть установлена либо на одном из них, либо на нескольких, либо ни на одном.
Итог
переключатели (RadioButton)
• переключатели используются тогда, когда нужно выбрать один и только один вариант действий из нескольких возможных;
• для обработки состояния переключателей в процедуру включают команды ветвления, которые вложены друг в друга.
Например, установить для определенного свойства объекта одно значение из некоторого определенного набора значений.
|
Итог
флажки (CheckBox)
• флажки используются тогда, когда может быть выбран либо один, либо несколько, либо не выбран ни один вариант действий из нескольких возможных;
• для обработки состояния флажков в процедуру включают последовательные команды ветвления, независимые друг от друга.
Например, установить значение одного или нескольких свойств объекта.
|
Переключатель и флажок имеют большинство свойств, которые мы рассматривали для формы, поля, кнопки и надписи, и еще некоторые, среди которых рассмотрим свойство Checked (англ. checked - выбранный).
Оно может принимать одно из двух значений True или False и определяет, установлена метка в данном объекте или нет (выбран этот объект или нет). Поэтому значение этого свойства можно использовать в команде ветвления вместо логического выражения
Рассмотрим, как можно использовать переключатели (RadioButton) для реализации ветвления в проекте.
Пример 1. Требуется создать проект, в ходе исполнения которого будет изменяться значение только одного из таких свойств формы:
- либо заголовок,
- либо цвет,
- либо размеры.
Интерфейс проекта.
Интерфейс проекта. |
Блок - схема проекта |
 |
 |
- При размещении переключателей на форме для каждого из них по умолчанию устанавливается значение свойства Checked ⇒ False.
- До запуска проекта изменим в первом переключателе значение этого свойства на True. После этого на форме он будет выглядеть выбранным (см.рис.). Таким он будет и после запуска проекта на исполнение.
Программный код для события Button1_Click (изменить)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If RadioButton1.Checked Then 'равнозначно такой записи условия : RadioButton1.Checked = true'
Me.Text = "Заголовок изменен"
ElseIf RadioButton2.Checked Then
Me.BackColor = Color.Coral
Else : Me.Width = Me.Width + 100 : Me.Height = Me.Height + 100
End If
End Sub
|
1. Начинаться выполнение этой команды будет с определения значения свойства RadioButton1.Checked:
-
если при наступлении события Button1_Click кнопки выбранным будет первый переключатель, тоRadioButton1.Checked = true; поэтому выполнится команда изменения заголовка формы, а другие части всей этой команды выполняться не будут.
-
если при наступлении события Button1_Click кнопки выбранным будет второй переключатель, то RadioButton1.Checked = false, поэтому будут выполняться команды после первого ключевого слова Else, то есть внутренняя команда ветвления. Во время ее выполнения определяется значение свойства RadioButton2.Checked. Поскольку выбран второй переключатель, то это значение равно true. Поэтому выполнится команда изменения цвета формы, а другие части команды выполняться не будут.
-
если же при наступлении события Button1_Click кнопки выбранным будет третий переключатель, то RadioButton1.Checked = false; поэтому будут выполняться команды после первого ключевого слова Else, то есть внутренняя команда ветвления. При ее выполнении определяется значение свойства RadioButton2.Checked. Поскольку второй переключатель не выбран, то его значение false. Тогда будут выполняться команды после второго ключевого слова Else, то есть две команды изменения размеров формы.
PS !!!
1. Если перед запуском проекта на выполнение ни у одного переключателя не изменять значение свойства Checked , установленное по умолчанию ( т.е. false на true), то при запуске проекта ни один из них не будет выбранным.
2. Если и во время исполнения проекта не выбрать ни один из переключателей и выбрать кнопку, то изменятся размеры формы (подумайте самостоятельно, почему произойдут именно такие изменения). Чтобы этого не произошло, нужно либо обязательно выбирать один из переключателей, либо после второго ключевого слова Else вставить еще одну команду ветвления:
If RadioButton1.Checked Then
Forml .Text= 'Заголовок изменен'
ElseIf RadioButton2.Checked Then
Forml .Color = Color.Red
ElseIf RadioButton3.CheckedThen
Forml.Width=600
Forml .Height= 300
End If
|
Поясните, как будет выполняться эта команда, если ни один из переключателей не будет выбран.
Программный код для события Button2_Click (восстановить)
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Text = "переключатели"
Me.BackColor = Color.White
If (Me.Width <> 538) And (Me.Height <> 437) Then Me.Width = Me.Width - 100 : Me.Height = Me.Height - 100
RadioButton1.Checked = True
End Sub
|
Пример 2 Создайте проект, с помощью которого можно устанавливать один из трех цветов для цвета фона формы.
- Создайте новый проект с именем «Выбор цвета».
- Поместите на форму три переключателя и две кнопки
Интерфейс проекта.

Программный код
Вариант 1
Программный код |
Блок - схема |
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If RadioButton3.Checked Then Me.BackColor = Color.Blue
If RadioButton1.Checked Then Me.BackColor = Color.Red
If RadioButton2.Checked Then Me.BackColor = Color.Green
End Sub
|
 |
Вариант 2.
Программный код |
Блок - схема |
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If RadioButton1.Checked Then
Me.BackColor = Color.Red
ElseIf RadioButton2.Checked Then
Me.BackColor = Color.Green
ElseIf RadioButton3.Checked Then
Me.BackColor = Color.Blue
End If
End Sub
|
 |
Вариант 3.
Программный код |
Блок - схема |
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If RadioButton1.Checked Then
Me.BackColor = Color.Red
ElseIf RadioButton2.Checked Then
Me.BackColor = Color.Green
Else : Me.BackColor = Color.Blue
End If
End Sub |
 |
Занятие 21.1 Флажки для реализации ветвления в проекте
| |