|
DataGridViewComboBoxColumn очень медленно открывается
|
|||
---|---|---|---|
#18+
Тип столбца в DataGridViewComboBoxColumn красив, но работает очень медленно. В выпадающем списке больше 9000 строк. Причём обычный ComboBox прекрасно переваривает и 100000 и автодополнение прекрасно работает. А мне как раз нужно выбирать значение из такого списка. Полагаю от DataGridViewComboBoxColumn придётся отказаться. В таком случае, подскажите, пжл, как редактировать ячейку в другой диалоговой форме. Т.е. я хочу оставить DataGridViewComboBoxColumn, но полностью лишить его кнопок и поставить ReedOnly. А потом на событие клик или даблклик или контекстное меню вешать вызов диалогового окна. Как это делать? Как из диалогового окна передавать значение обратно в ячейку. Может есть ссылка для полных чайников? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:22 |
|
DataGridViewComboBoxColumn очень медленно открывается
|
|||
---|---|---|---|
#18+
IvanVetrovТип столбца в DataGridViewComboBoxColumn красив, но работает очень медленно. В выпадающем списке больше 9000 строк. Причём обычный ComboBox прекрасно переваривает и 100000 и автодополнение прекрасно работает. А мне как раз нужно выбирать значение из такого списка. Полагаю от DataGridViewComboBoxColumn придётся отказаться. В таком случае, подскажите, пжл, как редактировать ячейку в другой диалоговой форме. Т.е. я хочу оставить DataGridViewComboBoxColumn, но полностью лишить его кнопок и поставить ReedOnly. А потом на событие клик или даблклик или контекстное меню вешать вызов диалогового окна. Как это делать? Как из диалогового окна передавать значение обратно в ячейку. Может есть ссылка для полных чайников?скорее всего надо виртуализацию сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:31 |
|
DataGridViewComboBoxColumn очень медленно открывается
|
|||
---|---|---|---|
#18+
Roman Mejtes, А как это сделать? Можно поподробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2015, 17:46 |
|
DataGridViewComboBoxColumn очень медленно открывается
|
|||
---|---|---|---|
#18+
Нашёл идеальный вариант с точки зрения скорости. 1. Использую DataGridViewComboBoxColumn, но отключаю его функционал: убираю кнопку и делаю readonly. 2. Добавляю на форму ComboBox и привязываю его к нужным данными указываю SelectedValue из bindingSource редактируемой ячейки. 2. Назначаю на событие DataGridView CellDoubleClick код вроде этого: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
А на событие ComboBox Leave, чтобы прятать ComboBox при потере фокуса. Код: c# 1. 2. 3. 4.
И тут главное выключать ComboBox только в Form_Load. А то не будет первый раз быстро открываться. Данные подгружаются в тот момент, когда они показываются на экране. В общем, этот приём работает прекрасно. Данные в в комбобоксе отображаются моментально без малейшей задержки. И меняются замечательно. Но.... Как добавлять новые записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2015, 15:48 |
|
DataGridViewComboBoxColumn очень медленно открывается
|
|||
---|---|---|---|
#18+
IvanVetrovВ выпадающем списке больше 9000 строк Пользователи благодарны, что не 90 000 строк ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2015, 19:12 |
|
DataGridViewComboBoxColumn очень медленно открывается
|
|||
---|---|---|---|
#18+
IvanVetrovНашёл идеальный вариант с точки зрения скорости. Вам бы в Олимпиадах выступать. Бенчмарки, то-се. А вы о пользователях думаете? У которых от прокрутки 9000 записей в комбобоксе кружится голова? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2015, 19:23 |
|
DataGridViewComboBoxColumn очень медленно открывается
|
|||
---|---|---|---|
#18+
Cat2, Подумал. Для это прекрасно работает авдополнение. И причём моментально. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2015, 08:45 |
|
|
start [/forum/topic.php?fid=20&fpage=70&tid=1400936]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 129ms |
0 / 0 |