ПОНЯТНО О Visual Basic NET (том 3)

       

Переключатель из радиокнопок (RadioButton)


Вы, возможно, знакомы с кнопками переключения диапазонов на радиоприемниках. Там в ряд стоят несколько кнопок. Нажатой в каждый момент может быть только одна. Нажимая какую-то кнопку, вы тем самым отжимаете ту, что была нажата раньше.

Аналогичный элемент управления есть и в VB. Называется он RadioButton (радиокнопка). Применяется он там, где нужно выбрать только одну из нескольких возможностей. Например, пусть персонажу вашей игры нужно выбрать одно оружие из четырех. На Рис. 18.2 вы видите группу из 4 соответствующих радиокнопок. Назовем такую группу переключателем. Здесь тоже, как и в случае с флажками, можно сколько угодно колебаться, передумывать и переключаться между радиокнопками, прежде, чем сделать решающее нажатие на кнопку «Берем оружие».

Рис. 18.2

Создайте проект в соответствии с этим рисунком. Запустите проект. Пощелкайте внутри кружочков. Вы видите, что из всех радиокнопок в любой момент времени только одна может быть выбрана, остальные автоматически отключаются.

А что делать, если вам на той же форме нужно организовать еще один переключатель, например, для выбора поля сражения? Для этого нужно каждую группу радиокнопок поместить в свой контейнер, например, рамку или панель (см. Рис. 18.3).

Рис. 18.3

В противном случае из всех семи радиокнопок в любой момент времени будет выбрана только одна.

Вы скажете, что радиокнопки и флажки – это одно и то же. Неверно. Флажков в любой момент времени может быть установлено сколько угодно, а из радиокнопок переключателя в любой момент времени может быть выбрана только одна.

Так же, как и у флажка, главным свойством радиокнопки является свойство Checked, которое имеет значение True, если кнопка выбрана, и False – если нет. Поэтому и программы работы с радиокнопками очень похожи на программы работы с флажками:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If RadioButton1.Checked Then



            TextBox1.Text = "Переключатель в положении 1"


        ElseIf RadioButton2.Checked Then

            TextBox1.Text = "Переключатель в положении 2"

        ElseIf RadioButton3.Checked Then

            TextBox1.Text = "Переключатель в положении 3"

        End If

End Sub

Если в переключателе много радиокнопок, то вышеприведенная процедура получается длинной. Можно ее укоротить применением цикла. Вот процедура для поиска выбранной радиокнопки в рамке:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim Радиокнопка As RadioButton

        For Each Радиокнопка In GroupBox1.Controls

            If Радиокнопка.Checked

Then Debug.WriteLine(Радиокнопка.Text) : Exit For

        Next

End Sub

Поэкспериментируйте с цветами, шрифтом радиокнопок. При свойстве Appearance равном Button радиокнопка выглядит, как нажатая или отжатая кнопка. Вы можете убрать с радиокнопки текст и придать ей картинку (задать свойство Image). Получается, что можно выбирать не только из текста, но и из картинок.

Задание 2.    

Снабдите проект на Рис. 18.3 кнопкой, при нажатии на которую распечатывается выбранное оружие и выбранное поле сражения.


Содержание раздела