![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| swetik1981 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 20.12.2007 Репутация: нет Всего: нет |
Имеется datatable (dt), которая отображена в datagridview (dgv)
К dgv добавлен DataGridViewComboBoxColumn (cbc), связанный с одним из столбцов dt. Как сделать, чтобы пользователь в случае отсутствия нужных значений в выпадающем списке мог осуществить ввод нового значения в ячейку с клавиатуры? |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Честно говоря, встроенных способов добиться этого не предусмотрено. Видимо связано это с тем, что комбобоксстолбец предназначен для случаев, когда количество значений ограничено. Можно обойти это ограничение, к примеру просто создать окошко, с помощью которого можно будет редактировать список и запускать его по необходимости. Мне кажется, что это самый оптимальный путь. Если это не подходит и надо непременно делать это прямо в самом комбобоксе, то можно с этим самым комбобоксом и пошаманить. Выловить его можно при помощи события грида EditingControlShowing примерно следующим образом
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| swetik1981 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 20.12.2007 Репутация: нет Всего: нет |
Проблема в том, что новое значение вводится в ячейку за счёт columnCombobox.DropDownStyle = ComboBoxStyle.DropDown, но пропадает сразу после выхода из неё. Такое ощущение, что комбоячейка разрешает вводить только те значения, которыек присутствуют в списке комбобокса. Как это обойти?
|
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Ну видимо отлавливать события изменения видимости и текста и в обработчиках вносить вновь введенное значение в список. Ну то есть, при изменении текста, вносить его в какую-нибудь переменную, а как только комбобокс становится невидимым - содержимое этой переменной вносить в список значений комбобокса. Ну это примерный сценарий конечно, там видимо повозиться все таки придется, но вариант вполне рабочий. Хотя я бы скорей сделал окошко для добавления новых значений и не парился бы. Добавлено через 2 минуты и 38 секунд Нет, наверно не за видимостью надо следить, а за фокусом. Как только фокус исчезнет, добавлять значение. Ну что-то в этом роде -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 8 Всего: 142 |
Вот очень приблизительный набросок. Там особо не проверял, так что в каких-то случаях и заглючить может, но идея должна быть понятна.
Присоединённый файл ( Кол-во скачиваний: 11 )
dgvComboboxNewItem.rar 66,22 Kb-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |