Составные элементы управления. Работа с элементами управления ComboBox и ListBox

Обновлен: Ноябрь 2007

На этом занятии вы узнаете, как добавлять и удалять элементы из списков. Кроме того, в занятии описывается процедура выполнения действий при выборе пользователем элемента в списке.

При необходимости предоставить пользователю список вариантов, можно отобразить список в элементах управления ListBox или ComboBox.

Элемент управления ListBox позволяет отображать несколько элементов, позволяя пользователям прокручивать длинный список. Когда пользователь выбирает элемент, он выделяется в списке, как показано на следующем рисунке.

Элемент управления ListBox
элемент управления ListBox

Элемент управления ComboBox представляет собой комбинацию текстового поля и списка. По умолчанию поле со списком отображается как текстовое поле, но если пользователь щелкнет стрелку раскрывающегося списка, то появится список. Когда пользователь выбирает элемент, он выделяется и отображается в представлении по умолчанию, как показано на следующем рисунке.

Элемент управления ComboBox
Элемент управления ComboBox

Процедуры добавления элементов в списки и поля со списком похожи. Для добавления элементов можно использовать метод Add элемента управления ListBox и метод Add элемента управления ComboBox.

Практическое задание

Для добавления элементов к списку

  1. В меню Файл выберите Создать проект.

    Откроется диалоговое окно Создание проекта.

  2. Выберите элемент Приложение Windows Forms и нажмите кнопку ОК.

    Откроется новый проект Windows Forms.

  3. Добавьте на форму элемент управления ListBox, оставив имя по умолчанию ListBox1.

  4. Дважды щелкните форму для добавления обработчика событий по умолчанию в редакторе кода.

  5. В обработчике событий Form_Load добавьте следующий код для добавления элементов в список.

    With Me.ListBox1.Items
        .Add("red")
        .Add("blue")
        .Add("green")
        .Add("yellow")
        .Add("orange")
        .Add("pink")
        .Add("brown")
        .Add("black")
    End With
    
  6. Нажмите клавишу F5 для запуска программы.

    На открывшейся форме отобразится ListBox, который содержит список цветов.

  7. Закройте программу.

Выполнение действия при изменении выделенного элемента

Когда пользователь выбирает соответствующий элемент в списке, программа может выполнить определенное действие, например, отобразить цвета. Чтобы сделать это, напишите код в обработчике событий SelectedIndexChanged элемента управления ListBox. Кроме того, имеется соответствующее событие для элемента управления ComboBox.

Определить выделенный элемент списка можно при помощи свойства SelectedItem. Назначить выбранный в списке цвет свойству BackColor элемента управления можно с помощью метода FromName объекта Color.

Чтобы отобразить цвет, выбранный в списке

  1. Добавьте на форму элемент управления TextBox, оставив имя по умолчанию TextBox1.

  2. Дважды щелкните элемент управления ListBox для добавления обработчика событий по умолчанию в редакторе кода.

  3. В обработчике событий ListBox_SelectedIndexChanged добавьте следующий код для отображения цвета в текстовом поле. Убедитесь, что переменная ColorName содержит значение, прежде чем присваивать его свойству BackColor текстового поля.

    Dim ColorName As String = CStr(ListBox1.SelectedItem)
    
    If ColorName IsNot Nothing Then
        Me.TextBox1.BackColor = _
            System.Drawing.Color.FromName(ColorName)
    End If
    
  4. Нажмите клавишу F5 для запуска программы.

  5. При открытии формы выберите элемент в списке, чтобы просмотреть выбранный цвет в текстовом поле.

  6. Закройте программу.

Проверка существования элемента в списке

При добавлении элементов в список может быть нежелательным дублирование существующих элементов. Например, можно предоставить пользователям возможность копирования элементов списка в поле со списком с помощью двойного щелчка на элементе. Если элемент уже имеется в поле со списком, он не должен добавляться повторно. Чтобы определить, существует ли заданный элемент, используйте метод Contains. Для списка также существует соответствующий метод Contains.

Для добавления элементов в поле со списком

  1. Добавьте на форму элемент управления ComboBox, оставляя имя по умолчанию ComboBox1.

  2. Затем форму щелкните правой кнопкой мыши и выберите в меню пункт Перейти к коду. Откроется редактор кода.

  3. В редакторе кода в раскрывающемся списке Имя класса выберите ListBox1.

  4. В списке Имя метода выберите DoubleClick для создания обработчика событий.

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

    If ListBox1.SelectedItem IsNot Nothing Then
        If Not ComboBox1.Items.Contains(Me.ListBox1.SelectedItem) Then
            Me.ComboBox1.Items.Add(Me.ListBox1.SelectedItem)
        End If
    
        Me.ComboBox1.SelectedItem = Me.ListBox1.SelectedItem
    
    End If
    
  6. Нажмите клавишу F5 для запуска программы.

    Дважды щелкните элементы в списке и проверьте, что они добавляются в поле со списком только один раз.

  7. Закройте программу.

Удаление элемента из списка

Чтобы удалить элемент из списка, используйте метод Remove. Например, вместо копирования элементов из списка в поле со списком их можно перемещать. Для перемещения элемента следует добавить его в поле со списком и удалить из списка.

Чтобы удалить элементы из списка

  1. Добавьте следующий код перед оператором End If в обработчике событий ListBox_DoubleClick.

    Me.ListBox1.Items.Remove(Me.ListBox1.SelectedItem)
    
  2. Нажмите клавишу F5 для запуска программы.

  3. Дважды щелкните элементы в списке и проверьте, что они удаляются из списка и добавляются в поле со списком.

Следующие действия

На этом занятии было объяснено, как добавлять и удалять элементы из списков. Также рассматривалась технология выполнения действий при выборе элемента пользователем. На следующем занятии вы узнаете, как использовать элементы управления, в которых отображаются дата и время.

Следующее занятие: Отображение дат. Использование элементов управления MonthCalendar и DateTimePicker

См. также

Ссылки

Общие сведения об элементе управления ListBox (Windows Forms)

Общие сведения об элементе управления ComboBox (Windows Forms)

Другие ресурсы

Создание внешнего вида программы. Введение в Windows Forms