Как сделать выпадающий список в c
Перейти к содержимому

Как сделать выпадающий список в c

Пять способов показать выпадающий список в Asp.Net MVC, с достоинствами и недостатками

В большинстве интродукций к Asp.Net MVC рассказывается о том, как красиво и просто организовать привязку модели к простым полям ввода, таким, как текстовое или чекбокс. Если ты, бесстрашный кодер, осилил этот этап, и хочешь разобраться, как показывать выпадающие списки, списки чекбоксов или радиобаттонов, этот пост для тебя.

Постановка задачи

У нас есть база фильмов, про которых мы знаем название и жанр. Хочется показать редактор информации о кино, у которого жанры выбираются из списка. Проблема в том, что наш View должен иметь данные как относящиеся к собственно фильму, так и к списку жанров. Причем, данные о фильме относятся к тому, что мы показываем, а список жанров — к тому, как мы редактируем нашу информацию.

Способ первый. The Ugly.

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

Имеем такие классы моделей:

Метод контроллера, как в руководствах для начинающих:

Здесь Data — это просто статический класс, который нам выдает данные. Он придуман исключительно для простоты обсуждения, и я бы не советовал использовать что-либо подобное в реальной жизни:

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

Что же здесь ужасного? Дело в том, что главное достоинство Asp.Net MVC, на мой взгляд, состоит в том, что у нас есть четкое разделение обязанностей (separation of concerns, или SoC). В частности, именно контроллер отвечает за передачу данных во вью. Разумеется, это не догма, а просто хорошее правило. Нарушая его, Вы рискуете наворотить кучу ненужного кода в Ваших представлениях, и разобраться через год, что к чему, будет очень непросто.

Плюс: простой контроллер.
Минус: в представление попадает код, свойственный контроллеру; грубое нарушение принципов модели MVC.
Когда использовать: если надо быстро набросать демку.

Способ второй. The Bad.

Как и прежде, модель передаем стандартным образом через контроллер. Все дополнительные данные передаем через ViewData. Метод контроллера у нас вот:

Понятно, что в общем случае мы можем нагромоздить во ViewData все, что угодно. Дальше все это дело мы используем во View:

Плюс: данные для «что» и «как» четко разделены: первые хранятся в модели, вторые — во ViewData.
Минусы: данные-то разделены, а вот метод контроллера «перегружен»: он занимается двумя (а в перспективе — многими) вещами сразу; кроме того, у меня почему-то инстинктивное отношение к ViewData как к «хакерскому» средству решения проблем. Хотя, сторонники динамических языков, возможно, с удовольствием пользуются ViewData.
Когда использовать: в небольших формах с одним-двумя списками.

Способ третий. The Good.

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

Теперь задача контроллера — изготовить эту модель из имеющихся данных:

Плюс: каноническая реализация паттерна MVC (это хорошо не потому, что хорошо, а потому, что другим разработчикам будет проще врубиться в тему).
Минусы: как и в прошлом примере, метод контроллера перегружен: он озабочен «что» и «как»; кроме того, эти же «что» и «как» соединены в одном классе ViewModel.
Когда использовать: в небольших и средних формах с одним-тремя списками и другими нестандартными элементами ввода.

Способ четвертый. The Tricky.

Есть еще одна «задняя дверь», через которую можно доставить данные во View — это метод RenderAction. Многие брезгливо морщатся при упоминании об этом методе, поскольку, по классике, View не должен знать о контроллере. Лично для меня это (да простят меня боги) хороший аналог UserControl-ов из WebForms. А именно, возможность создать некий элемент, практически (если не считать параметров вызова этого метода) независимый от всей остальной страницы.

Итак, в качестве модели мы используем MovieModel, и метод контроллера такой же, как и TheUgly. Но у нас теперь появится новый контроллер, и метод для отрисовки дропдауна в нем, а также partial с этим дропдауном. Этот partial мы сделаем макимально гибким, чтобы им пользоваться и в других случаях, назовем Dropdown.ascx, и поместим его в папку Views\Shared:

Что касается метода, который рендерит этот вью, то тут есть пара хитростей:

Во-первых, мы теряем тут автоматический выбор нужного значения, поэтому нам нужно вручную устанавливать свойство Selected у SelectListItem. Во-вторых, если мы передаем какие-то нетривиальные метаданные в наш View, то мы должны сначала установить модель, а потом уже метаданные. В противном случае метаданные автоматически создадутся на основе модели. По той же причине мы не должны писать return View(model). Ну и собственно метаданные нужны для того, чтобы определить название свойства и текст по умолчанию (NullDisplayText). Без последнего, кстати, можно обойтись.

Наконец, метод контроллера вызывается из главного View:

Плюсы: разделение ответственности на уровне контроллера: MovieController отвечает за данные о фильме, GenreController — за жанры. На уровне View у нас тоже полная победа: главный вью существенно упростился, а детали реализации выбора жанра отправились во вспомогательный. Здесь, кстати, есть некая аналогия с упрощением длинного метода и выносом части кода во вспомогательный метод.
Минусы: больше кода, сложнее структура.
Когда использовать: когда главный View становится достаточно большим, и дропдауны появляются у нескольких полей, либо когда выбор жанра необходимо использовать на нескольких страницах.

Способ пятый. The Smart.

Когда вся нетривиальная часть по организации ввода (или выбора) нужного значения отделена от главного View, возникает желание как-то резко это главный View упростить. И очевидное тут решение — использовать Html.EditorForModel(). Теперь за выбор способа отображения того или иного поля отвечают метаданные класса модели. Единственная проблема — встроенными средствами мы можем лишь заставить движок вызвать в нужном месте RenderPartial(), но не RenderAction(). Поэтому придется создать Partial View, который не несет никакой нагрузки, кроме как вызвать соответствующий RenderAction. (Правда, если нам нужно будет кастомизировать редактор поля, то мы будем изменять именно этот вью, а DropDown.ascx оставим нейтральным.)

Итак, в папке \Views\Movie\EditorTemplates создаем Partial View под названием GenreEditor.ascx. Модель у него будет того же типа, что и свойство GenreId, которое мы редактируем, т.е., int. Сам вью будет содержать только вызов RenderAction:

Чтобы наш вью использовать, надо в модель добавить нужный атрибут к свойству GenreId:

Плюсы: те же, что и в предыдущем примере, но при этом мы существенно упростили наш главный View.
Минусы: нам пришлось изготовить лишний View, который (пока) не несет никакой осмысленной нагрузки (но, возможно, позволит кастомизировать редактирование поля, например, добавить подсказку). Еще один, более важный, минус — труднее кастомизировать общую структуру формы (например, одно поле показать в левой части, а остальные — в правой). Если требуется глобальная кастомизация (например, везде использовать таблицы вместо дивов), можно изготовить свой шаблон для Object.
Когда использовать: когда полей много, показываются они более-менее страндартным образом, и часто вносятся изменения в список полей.

Теперь, если у нас появляются дропдауны с категориями, рейтингом и т.д., мы сможем по-прежнему использовать Dropdown.aspx (как и для других дропдаунов), но нам придется писать аналогичные методы контроллеров и partials, аналогичные нашему GenreEditor. Можно ли это как-то оптимизировать? Во-первых, можно изготовить базовый Generic Controller, и отправить наш метод туда. Во-вторых, можно каким-нибудь образом передать в наш partial название связанного класса («Genre») (например, через атрибут DataType), и сконструировать вызов RenderAction соответственным образом. Теперь вместо GenreEditor мы будем иметь универсальный редактор для выбора из выпадающего списка. В итоге мы получим, что добавление новых справочников никак не увеличит количество необходимого кода — надо лишь соответствующим образом проставить атрибуты у модели. В примерах этого нет, но читатель лекго это реализует сам.

А как еще можно?

Единственный по-настоящему отличающийся от приведенных здесь способ, который пришел мне в голову — сделать наполнение дропдауна через AJAX. Плюс здесь очевиден: данные передаются независимо от html и могут быть использованы в других местах другим способом. Я слышал, что такая штука очень просто реализуется в Spark, но у меня руки еще не дошли попробовать.

А зачем, вообще, с этим париться?

С примерами всегда одна беда: они должны быть достаточно простыми, чтобы было понятно, о чем речь, но тогда непонятно, зачем такое сложное решение. Если Вас по-прежнему волнует этот вопрос, перечитайте пункты «когда использовать».

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

Как сделать выпадающий список в c

Все, что необходимо начинающему и опытному программисту

Список и Выпадающий список.

Сейчас настало время вспомнить дела давно минувших дней. А именно вернуться назад к двум волшебным элементам управления Списку(ListBox) и Выпадающему Списку(ComboBox). Вы имеете опыт работы с ними в Visual C++ 6.0 , мы же рассмотрим их в контексте C#.

Список

Этот элемент как и многие другие наследуется от базового класса Control.Это легко доказать просто взглянув на иерархию наследования

Как вы уже наверняка поняли из иерархии за список отвечает класс ListBox, который также находится в пространстве System.Windows.Forms.Большинство своих методов и свойств он получает из базового класса Control. Рассмотрим те его части, которые используются в практическом примере.

Свойство Items

Данное свойство является одним из важнейших свойств. Оно возвращает ссылку на массив значений расположенных в списке. Это ссылка имеет тип данных ObjectCollection . Это класс с помощью методов, которого можно добавлять, удалять и т.п. значения в списке. Рассмотрим несколько методов этого класса.

Свойство SelectedItem

Свойство SelectedItems

Свойство SelectedIndex

Свойство SelectedIndices

Выпадающий список

У списка и выпадающего списка достаточно много общего. За выпадающий список отвечает класс ComboBox.Рассмотрим иерархию наследования для этого класса:

Иерархия ComboBox схожа с ListBox. Всё что сказано было выше о ListBox верно и для ComboBox. У комбо-бокса добавились ещё некоторые методы. Например:

Для более детального ознакомления с методами этих классов воспользуйтесь MSDN.

Практический пример на элементы управления.

Данная программа позволяет проанализировать содержимое выбранной директории на предмет наличия JPEG-файлов. В случае обнаружения файлы заносятся в список, а при выборе файлы из списка, изображение показывается на форме.

Combo Box Класс

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

Представляет элемент управления "поле со списком" Windows.

Примеры

В следующем примере кода представлено полное приложение, показывающее, как можно использовать Add метод для добавления элементов в объектComboBox, FindString метода для поиска элементов в объектеComboBox, а EndUpdate также BeginUpdate методов для эффективного добавления большого числа элементов в объектComboBox. Возможность хранения значений, отличающихся от отображаемого текста, наследуется от ListControl. Пример использования этой функции см. в описании ListControl класса.

Для выполнения этого примера необходимо добавить ссылки на System.Drawing пространства имен и System.Windows.Forms пространства имен.

Комментарии

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

Свойство DropDownStyle указывает, всегда ли отображается список или отображается ли список в раскрывающемся списке. Свойство DropDownStyle также указывает, можно ли редактировать текстовую часть. Ознакомьтесь ComboBoxStyle с доступными параметрами и их эффектами. Параметр всегда не отображает список и запрещает ввод нового значения. Чтобы отобразить список, в который нельзя добавить новые значения, используйте ListBox элемент управления.

Чтобы добавить или удалить объекты в списке во время выполнения, используйте методы ComboBox.ObjectCollection класса (с помощью Items свойства ).ComboBox Вы можете назначить массив ссылок на объекты с AddRange помощью метода. Затем в списке отображается строковое значение по умолчанию для каждого объекта. Вы можете добавить отдельные объекты с Add помощью метода. Вы можете удалить элементы с Remove помощью метода или очистить весь список с Clear помощью метода.

Помимо функций отображения и выделения, также предоставляются функции, ComboBox позволяющие эффективно добавлять элементы в ComboBox элементы списка и находить текст в элементах списка. BeginUpdate С помощью методов EndUpdate можно добавлять большое количество элементов в ComboBox элемент управления без переопределений при каждом добавлении элемента в список. Методы FindString позволяют FindStringExact искать элемент в списке, который содержит определенную строку поиска.

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

Если у вас есть ListBoxComboBoxили CheckedListBox на базовой странице Windows Forms и требуется изменить коллекции строк этих элементов управления в производной форме, строки коллекций этих элементов управления в базовой форме должны быть пустыми. Если коллекции строк не пусты, они становятся доступны только для чтения при наследовав другую форму.

Конструкторы

Инициализирует новый экземпляр класса ComboBox.

Свойства

Получает объект AccessibleObject, назначенный элементу управления.

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

Возвращает или задает описание элемента управления, используемого клиентскими приложениями со специальными возможностями.

Возвращает или задает имя элемента управления, используемого клиентскими приложениями со специальными возможностями.

Возвращает или задает доступную роль элемента управления.

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

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

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

Возвращает или задает пользовательскую коллекцию StringCollection для использования в случае, когда для свойства AutoCompleteSource задано значение CustomSource .

Возвращает или задает параметр, который управляет работой автоматического завершения для ComboBox.

Возвращает или задает значение, указывающее источник строк завершения, используемых для автоматического завершения.

Возвращает или задает местоположение, в котором выполняется прокрутка этого элемента управления в ScrollControlIntoView(Control).

Данное свойство не применимо к этому классу.

Возвращает или задает цвет фона для элемента управления.

Данное свойство не применимо к этому классу.

Возвращает или задает макет фонового изображения в соответствии с перечислением ImageLayout.

Возвращает или задает макет фонового изображения в соответствии с перечислением ImageLayout.

Возвращает или задает значение BindingContext для элемента управления.

Возвращает расстояние в пикселях между нижней границей элемента управления и верхней границей клиентской области контейнера.

Возвращает или задает размер и местоположение (в пикселях) элемента управления, включая его неклиентские элементы, относительно его родительского элемента управления.

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

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

Определяет, могут ли вызываться события в элементе управления.

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

Возвращает или задает значение, указывающее, была ли мышь захвачена элементом управления.

Возвращает или задает значение, указывающее, вызывает ли элемент управления выполнение проверки для всех элементов управления, требующих проверки, при получении фокуса.

Возвращает прямоугольник, представляющий клиентскую область элемента управления.

Возвращает или задает высоту и ширину клиентской области элемента управления.

Возвращает название организации или имя создателя приложения, содержащего элемент управления.

Возвращает объект IContainer, который содержит коллекцию Component.

Возвращает значение, указывающее, имеет ли элемент управления или один из его дочерних элементов фокус ввода в настоящий момент.

Возвращает или задает контекстное меню, связанное с элементом управления.

Возвращает или задает объект ContextMenuStrip, сопоставленный с этим элементом управления.

Возвращает коллекцию элементов управления, содержащихся в элементе управления.

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

Возвращает параметры, необходимые для создания дескриптора элемента управления.

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

Возвращает привязки данных для элемента управления.

Получает CurrencyManager, связанный с данным элементом управления.

Возвращает или задает источник данных для этого объекта ComboBox.

Возвращает или задает источник данных для этого объекта ListControl.

Возвращает или задает курсор по умолчанию для элемента управления.

Возвращает стандартный режим редактора методов ввода, поддерживаемый данным элементом управления.

Возвращает размер пустого пространства в пикселях между элементами управления, которое определено по умолчанию.

Возвращает длину и высоту в пикселях, которые были указаны в качестве максимального размера элемента управления.

Возвращает длину и высоту в пикселях, которые были указаны в качестве минимального размера элемента управления.

Возвращает внутренние промежутки в содержимом элемента управления в пикселях.

Получает размер элемента управления по умолчанию.

Возвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время.

Получает значение DPI для устройства, на котором сейчас отображается элемент управления.

Получает или задает свойство отображения для объекта ListControl.

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

Получает значение, указывающее, находится ли базовый класс Control в процессе удаления.

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

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

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

Возвращает или задает высоту в пикселях раскрывающегося поля со списком ComboBox.

Возвращает или задает значение, определяющее стиль поля со списком.

Возвращает или задает ширину раскрывающейся части поля со списком.

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

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

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

Возвращает или задает внешний вид объекта ComboBox.

Возвращает значение, указывающее, имеет ли фокус объект ComboBox.

Возвращает или задает шрифт текста, отображаемого элементом управления.

Возвращает или задает высоту шрифта элемента управления.

Возвращает или задает цвет элемента управления.

Получает или задает IFormatProvider, предоставляющий пользовательское поведение форматирования.

Возвращает или задает символы описателя формата, который определяет способ отображения значения.

Получает или задает значение, указывающее, применяется ли форматирование к свойству DisplayMember объекта ListControl.

Возвращает дескриптор окна, с которым связан элемент управления.

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

Возвращает или задает высоту элемента управления.

Возвращает или задает режим редактора метода ввода элемента управления.

Получает или задает режим IME элемента управления.

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

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

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

Указывает, является ли один из предков этого элемента управления сайтом и сайтом в DesignMode. Это свойство доступно только для чтения.

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

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

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

Возвращает или задает высоту элемента в поле со списком.

Возвращает объект, представляющий коллекцию элементов, содержащихся в данном поле со списком ComboBox.

Получает кэшированный экземпляр механизма размещения элемента управления.

Возвращает или задает расстояние в пикселях между левой границей элемента управления и левой границей клиентской области его контейнера.

Возвращает или задает координаты левого верхнего угла элемента управления относительно левого верхнего угла его контейнера.

Возвращает или задает расстояние между элементами управления.

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

Возвращает или задает размер, являющийся верхней границей, которую может указать метод GetPreferredSize(Size).

Возвращает или задает размер, являющийся верхней границей, которую может указать метод GetPreferredSize(Size).

Возвращает или задает число знаков, которое пользователь может ввести в ComboBox.

Возвращает или задает размер, являющийся нижней границей, которую может указать метод GetPreferredSize(Size).

Возвращает или задает размер, являющийся нижней границей, которую может указать метод GetPreferredSize(Size).

Возвращает или задает имя элемента управления.

Данное свойство не применимо к этому классу.

Возвращает или задает заполнение в элементе управления.

Возвращает или задает родительский контейнер элемента управления.

Возвращает предпочтительную высоту ComboBox.

Возвращает размер прямоугольной области, в которую может поместиться элемент управления.

Возвращает имя продукта сборки, содержащей элемент управления.

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

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

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

Это свойство устарело.

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

Возвращает расстояние в пикселях между правой границей элемента управления и левой границей клиентской области его контейнера.

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

Получает значение, определяющее масштабирование дочерних элементов управления.

Возвращает или задает индекс, указывающий текущий выделенный элемент.

Возвращает или задает выделенный элемент в поле со списком ComboBox.

Возвращает или задает текст, выделенный в редактируемой части поля со списком ComboBox.

Получает или задает значение свойства члена, указанного свойством ValueMember.

Возвращает или задает число символов, выделенных в редактируемой части поля со списком.

Возвращает или задает начальный индекс текста, выделенного в поле со списком.

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

Возвращает значение, указывающее, имеет ли пользовательский интерфейс соответствующее состояние, при котором отображаются или скрываются сочетания клавиш.

Возвращает или задает местонахождение элемента управления.

Возвращает или задает высоту и ширину элемента управления.

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

Возвращает или задает последовательность перехода по клавише TAB между элементами управления внутри контейнера.

Возвращает или задает значение, указывающее, может ли пользователь перевести фокус на данный элемент управления при помощи клавиши TAB.

Возвращает или задает объект, содержащий данные об элементе управления.

Возвращает или задает текст, связанный с этим элементом управления.

Возвращает или задает расстояние в пикселях между верхней границей элемента управления и верхней границей клиентской области его контейнера.

Получает родительский элемент управления, не имеющий другого родительского элемента управления Windows Forms. Как правило, им является внешний объект Form, в котором содержится элемент управления.

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

Получает или задает путь к свойству, которое должно использоваться как фактическое значение для компонентов в элементе управления ListControl.

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

Возвращает или задает ширину элемента управления.

Данное свойство не применимо к этому классу.

Методы

Уведомляет клиентские приложения со специальными возможностями об указанном перечислении AccessibleEvents для указанного дочернего элемента управления.

Уведомляет клиентские приложения со специальными возможностями об указанном перечислении AccessibleEvents для указанного дочернего элемента управления.

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

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

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

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

Поддерживает быстродействие при добавлении элементов в поле со списком ComboBox по одному.

Помещает элемент управления в начало z-порядка.

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

Создает для элемента управления новый объект с поддержкой специальных возможностей.

Создает для элемента управления новый объект с поддержкой специальных возможностей.

Вызывает принудительное создание видимого элемента управления, включая создание дескриптора и всех видимых дочерних элементов.

Создает новый экземпляр коллекции элементов управления для данного элемента управления.

Создает объект Graphics для элемента управления.

Создает дескриптор для элемента управления.

Создает дескриптор для элемента управления.

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

Отправляет заданное сообщение процедуре окна, используемой по умолчанию.

Удаляет дескриптор, связанный с элементом управления.

Освобождает все ресурсы, занятые модулем Component.

Освобождает неуправляемые ресурсы, используемые объектом ComboBox, а при необходимости освобождает также управляемые ресурсы.

Начинает операцию перетаскивания.

Поддерживает отрисовку в указанном точечном рисунке.

Получает возвращаемое значение асинхронной операции, представленное переданным объектом IAsyncResult.

Возобновляет перерисовку элемента управления ComboBox после того, как вызов метода BeginUpdate() приостановил ее.

Определяет, равен ли указанный объект текущему объекту.

Извлекает текущее значение элемента ListControl, если он является свойством объекта, заданного элементом.

Возвращает текущее значение элемента ListControl, если он является свойством объекта, заданного элементом и именем свойства.

Возвращает форму, в которой находится элемент управления.

Возвращает индекс первого элемента в объекте ComboBox, начинающегося с заданной строки.

Возвращает индекс первого элемента в объекте ComboBox после указанного индекса, содержащего заданную строку. Поиск не учитывает регистр символов.

Находит первый элемент в поле со списком, совпадающий с указанной строкой.

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

Устанавливает фокус ввода на элемент управления.

Получает указанный объект AccessibleObject.

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

Возвращает дочерний элемент управления, имеющий указанные координаты.

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

Возвращает следующий объект ContainerControl в цепочке родительских элементов управления данного элемента.

Служит хэш-функцией по умолчанию.

Возвращает высоту элемента в ComboBox.

Возвращает текстовое представление указанного элемента.

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

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

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

Возвращает границы, внутри которых масштабируется элемент управления.

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

Возвращает значение указанного бита стиля элемента управления для данного элемента управления.

Определяет, находится ли элемент управления на верхнем уровне.

Возвращает объект Type для текущего экземпляра.

Скрывает элемент управления от пользователя.

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

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

Делает недействительной всю поверхность элемента управления и вызывает его перерисовку.

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

Делает недействительной указанную область элемента управления (добавляет ее к области обновления элемента, которая будет перерисована при следующей операции рисования) и вызывает отправку сообщения рисования элементу управления.

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

Делает недействительной указанную область элемента управления (добавляет ее к области обновления элемента, которая будет перерисована при следующей операции рисования) и вызывает отправку сообщения рисования элементу управления.

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

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

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

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

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

Вызывает событие GotFocus для указанного элемента управления.

Вызывает событие LostFocus для указанного элемента управления.

Вызывает событие Click для указанного элемента управления.

Вызывает событие Paint для указанного элемента управления.

Вызывает событие PaintBackground для указанного элемента управления.

Определяет, является ли символ входным символом, который распознается элементом управления.

Определяет, является ли заданная клавиша обычной клавишей ввода или специальной клавишей, нуждающейся в предварительной обработке.

Преобразует логическое значение DPI в эквивалентное значение DPI DeviceUnit.

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

Создает неполную копию текущего объекта Object.

Создает неполную копию текущего объекта MarshalByRefObject.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *