2014-12-05 4 views
1

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

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

Насколько я могу судить по элементам управления Microsoft и свойствам, существует только 2 варианта, которые относятся к этому вопросу. DropDownStyle as DropDown или DropDownList.

При использовании DropDown пользователь может предоставить любое имя (которое не требуется). С DropDownList пользователь может отправлять только имена в списке, но при просмотре старых записей любые имена, которые больше не входят в этот список, не будут отображаться в их соответствующих вызовах (что также не нужно).

Я знаю, что мне удастся реализовать свой класс combobox, но я хотел узнать, знает ли кто-нибудь о более элегантном исправлении, которое сочетало обе эти функции. Благодаря!

+0

Не уверен, что я понимаю ваш вопрос ... но если да, вы можете добавить код в событие 'Validate', чтобы убедиться, что vlue, который вы получаете,« разрешен » –

+0

Я бы не использовал один и тот же элемент управления для ** отображения текущего и предыдущие сотрудники ** и ** отображаются только текущие сотрудники **. Я бы использовал «ListBox» для предыдущих вызовов и «ComboBox» для текущих сотрудников. – djv

+0

нынешние и бывшие сотрудники - это две разные концепции, поэтому не пытайтесь их комбинировать – Plutonix

ответ

-1

Используйте DropDown. В событии проверки установите e.Cancel = True и проинструктируйте администратору ErrorProvider установить предупреждение с помощью метода SetError, если SelectedItem Is Nothing, но устраните ошибку (передав в SetError). Затем в поле со списком SelectionChangeCommitted вызовите метод формы Validate.

0

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

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

Смежные вопросы