Combobox с несколькими столбцами
-
02-10-2019 - |
Вопрос
Сценарий: Я нахожусь в процессе перемещения приложения из доступа к C#, и в одной из форм (в доступе) пользователь может выбрать раскрывающийся список с тремя столбцами (ID, Имя, Фамилия).Как только они выберут из списка, идентификатор отобразится в раскрывающемся списке.
Вопрос: Можно ли воссоздать эту функциональность с помощью поля со списком?Какие альтернативы вы можете предложить?
РЕДАКТИРОВАТЬ:
альтернативный текст http://www.freeimagehosting.net/uploads/7acfb7bb8b.jpg
Раскрывающийся список находится вверху слева, рядом с ним находится текстовое поле, в котором используется имя из двух последних столбцов раскрывающегося списка.
РЕДАКТИРОВАТЬ 2:
Поскольку использование нескольких столбцов невозможно, есть ли способ вместо этого указать несколько элементов отображения, которые будут отображаться в раскрывающемся списке?Например:Идентификатор – Имя Фамилия
В настоящее время объект сотрудника добавляется в раскрывающийся список с этими свойствами.Я попытался установить элемент отображения на
cmbEmp.DisplayMember ="EmployeeID " + "FirstName " + "LastName";
но это не так.Должен ли я отказаться от использования объекта сотрудника и просто выполнить SQL-вызов, собирающий объединенные вместе?Я пытался повторно использовать некоторый код (мне дали этот проект на полпути к его завершению), но это может оказаться неосуществимым.
Решение
Общий метод достижения этого - переоценка события OndropDown, чтобы нарисовать ваше собственное раскрывающееся окно с несколькими значениями. Есть много примеров, начиная от прохождений до загружаемых элементов управления. Вот несколько:
- http://www.codeguru.com/cpp/controls/combobox/multicolumncombos/article.php/c1825/
- http://www.codeproject.com/kb/combobox/multicolumncombo.aspx
- http://www.codeproject.com/kb/combobox/multicolumn_combobox.aspx
- http://www2.syncfusion.com/library/classref/syncfusion.windows.forms.tools.multicolumncombobox.html
- http://www.brothersoft.com/downloads/multicolumn-combobox.html
- http://www.edneeis.com/control.aspx?id=7
Другие советы
Поле со списком вашего изображения не имеет такой возможности напрямую, однако я видел специальные сторонние элементы управления, которые это делают.Я обновлю, если смогу найти имя одного.
Программное обеспечение, которое я использовал, имело лицензию http://www.active-x.com/ActiveX/APEX_Software_Corporation/True_DBList_Pro_5_0/ Однако эта программа была написана во времена VB5 (я не уверен, существует ли сейчас компания, производящая управление).Я бы посоветовал попробовать найти что-то похожее, но более современное.