Связанные ComboBox в приложении WinForms/C#

Задача: сделать несколько связанных между собой комбо-боксов, например для выбора адреса - выбираешь район, фильтруются улицы, выбираешь улицу, фильтруются дома - и так далее. Источник данных - связанная DataTable. Данные могут как просто фильтроваться, так и загружать из базы. Должен быть поиск по содержимом комбо-боксов, свои значения вводить нельзя, возможны пустые значения. Задача очень простая, так что ниже просто мини-памятка свойств WinForms, за которые надо дергать в данном случае.

Во-первых если запросы из базы занимают относительно много времени, секунду и больше, то привязка на стандартные события SelectedIndexChanged, SelectedValueChanged чревата очень странными глюками, так как реально код на этих событиях будет вызываться несколько раз и сильно тормозить. Лечить эти глюки нет смысла, так как тормоза останутся, стоит подписаться на событие SelectionChangeCommitted. При этом некоторые функции возможно придется продублировать для случай цепного обновления (изменился район-изменилась первая улица в списке - изменился первый дом в списке-изменилась первая квартира в списке)

Чтобы корректно работала подсказка с поиском по всему списку элементов ComboBox, надо выставить следующее сочетание свойств:

  1. AutoCompleteMode - SuggestAppend
  2. AutoCompleteSource - ListItems
  3. DropDownStyle - DropDownList

Комментарии

Связанные ComboBox в приложении WinForms/C# — Комментарии (2)

  1. 1a9Pretty nice post. I just stumbled upon your blog and wished to say that I’ve truly enjoyed surfing around your blog posts. After all I will be sucbsribing to your feed and I hope you write again very soon!

Добавить комментарий для kreditkarten akzeptanzpartner Отменить ответ

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


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>