На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Привязка выпадающего списка к перечислению C#



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

Класс Enum

Перечисления не реализуют интерфейсы, необходимые для их привязки к элементам управления Windows. Чтобы значения из перечисления можно было использовать для привязки только для чтения, их необходимо перенести в массив. Это преобразование может быть легко выполнено с помощью методов класса System.Enum. В этой заметке мы создадим очень простое приложение Windows Forms, которое использует один из этих методов для привязки элемента управления ComboBox к перечислению и извлечения выбранной константы из списка.

Создание формы

Для начала создайте новое приложение Windows Forms. Добавьте в форму поле со списком (ComboBox) "ColourList" и кнопку "OKButton". Измените текст кнопки на "ОК". Заполненная форма должна быть похожа на ту, что изображена ниже:



Привяжем выпадающий список к форме теста перечисления

Создание перечисления

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

public enum Colour
{
    Black,
    White,
    Red,
    Yellow,
    Green,
    Cyan,
    Blue,
    Magenta
}
Добавление привязки

Для получения массива значений для привязки к выпадающему списку будет использоваться статический метод getValues класса Enum. Этот метод требует, чтобы тип перечисления, подлежащего преобразованию в массив, передавался в качестве параметра. Возвращаемый массив затем может быть назначен свойству источника данных выпадающего списка.

Чтобы привязать список цветов к элементу управления, добавьте следующую строку кода в событие загрузки формы. Это создаст массив и привяжет его к выпадающему списку. Хотя каждое значение в списке является цветом, будет отображаться название цвета, так как это результат метода toString константы.

ColourList.DataSource = Enum.GetValues(typeof(Colour));
Если вы запустите программу на этом этапе, вы должны увидеть список значений в элементе управления выпадающего списка.

Получение выбранного значения

Выбранное в данный момент значение цвета можно получить с помощью свойства SelectedItem выпадающего списка. Свойство возвращает объект, который должен быть приведен к цветовому типу для полного опроса.

Примечание: Если поле со списком настроено так, чтобы пользователь мог вводить данные в элемент текстового поля, он может ввести значение, которого нет в списке. В этом случае свойство SelectedItem будет равно null.

Чтобы завершить пример, дважды щелкните кнопку ОК в конструкторе форм, чтобы добавить обработчик события нажатия кнопки. Измените событие следующим образом:

private void OKButton_Click(object sender, EventArgs e)
{
    Colour col = (Colour)ColourList.SelectedItem;
 
    string message = string.Format("{0} ({1})", col.ToString(), (int)col);
    MessageBox.Show(message, "Selection");
}
Когда пользователь нажимает кнопку ОК, переменная col заполняется константой перечисления, выбранной в выпадающем



Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, си шарп, перечисления, формы, списки

Читайте также:




Особенности Java
Шахматы


© upread.ru 2013-2022
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.