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

       

Флажок (CheckBox)


Смысл флажков. Пример использования флажков (CheckBox) вы видите на Рис. 18.1. Если из рисунка вам непонятен их смысл, создайте проект, поместите на форму из Toolbox несколько флажков, поменяйте им в соответствии со своими вкусами свойство Text, запустите проект, пощелкайте внутри квадратиков. Флажок мы устанавливаем (ставим галочку) тогда, когда хотим сказать «да», а снимаем (делаем пустым), когда хотим сказать «нет». При помощи клавиатуры вы можете путешествовать между флажками клавишей Tab, а менять установку флажка – клавишей пробела. Можно безо всяких вредных последствий устанавливать и снимать любой флажок сколько угодно раз. В этом и состоит удобство флажков: перед тем, как совершить решающее нажатие на кнопку «Заказать», можно поддаться сомнениям и как угодно устанавливать флажки или, передумав, снимать.

Рис. 18.1

Поместите на форму флажок. Загляните в окно свойств флажка. Там вы увидите несколько знакомых нам свойств, присущих большинству элементов управления. Поэкспериментируйте с цветами, шрифтом флажка. Уберите с флажка текст и придайте картинку его свойству Image. Получается, что можно отлично обойтись и без текста, если картинка верно передает смысл флажка.

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

При свойстве Appearance равном Button флажок выглядит, как нажатая или отжатая кнопка.

У каждого флажка мы видим два состояния (установлен – снят). Им соответствуют два значения свойства Checked: True и False.

Если вы склонны к неопределенностям, то можете настроить любой флажок на три состояния. Для этого установите свойство ThreeState в True. Все три состояния флажка являются значениями свойства (перечисления) CheckState. Вот они:

Состояние

Смысл



Внешний вид флажка

Checked

Установлен

В белом квадратике – галочка

Unchecked

Снят

Белый квадратик пуст

Indeterminate

Не определен

В сером квадратике – галочка

Пример программы. Для изучения работы флажков создайте проект. Поместите на форму пару флажков, пару текстовых полей и пару кнопок. Флажки получают имена CheckBox1, CheckBox2. Работу с флажками иллюстрирует следующая программа:


' При загрузке формы задаем количество состояний и  начальное состояние каждому флажку:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        CheckBox1.ThreeState

= False          '1 флажку разрешается устанавливать  одно состояние из двух

        CheckBox1.Checked = True

        CheckBox2.ThreeState

= True            '2 флажку разрешается устанавливать  одно состояние из трех

        CheckBox2.CheckState

= CheckState.Indeterminate

End Sub

'Определяем состояние первого флажка:

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

        If CheckBox1.Checked Then TextBox1.Text = "Первый флажок установлен" _

                                              Else  TextBox1.Text = "Первый флажок снят"

End Sub

'Определяем состояние второго флажка:

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

        Select Case CheckBox2.CheckState

            Case CheckState.Checked

                TextBox2.Text = "Второй флажок установлен"

            Case CheckState.Unchecked

                TextBox2.Text = "Второй флажок снят"

            Case CheckState.Indeterminate

                TextBox2.Text = "Второй флажок не определен"

        End Select

End Sub

Здесь по нажатии на кнопку Button1 мы видим в поле TextBox1 состояние первого флажка. Аналогично по нажатии на кнопку Button2 мы видим в поле TextBox2 состояние второго флажка.

Мгновенная реакция. Загляните в события флажка (как это делается, написано в 3.11). Если вы хотите, чтобы компьютер в нашем проекте мгновенно реагировал на изменение состояния флажков, выберите такие события:

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

Handles CheckBox1.CheckedChanged

        Debug.WriteLine("Изменили состояние первого флажка")

End Sub

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

Handles CheckBox2.CheckStateChanged

        Debug.WriteLine("Изменили состояние второго флажка")

End Sub

Задание 1.    

«Виртуальный ресторан». Создайте проект (Рис. 18.1), который бы при нажатии на кнопку «Заказать» печатал в окне Output список выбранных блюд. Указание: поскольку блюд много, создайте коллекцию флажков и используйте цикл For Each.


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