powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridViewComboBoxColumn очень медленно открывается
8 сообщений из 8, страница 1 из 1
DataGridViewComboBoxColumn очень медленно открывается
    #39133542
IvanVetrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тип столбца в DataGridViewComboBoxColumn красив, но работает очень медленно. В выпадающем списке больше 9000 строк. Причём обычный ComboBox прекрасно переваривает и 100000 и автодополнение прекрасно работает. А мне как раз нужно выбирать значение из такого списка. Полагаю от DataGridViewComboBoxColumn придётся отказаться. В таком случае, подскажите, пжл, как редактировать ячейку в другой диалоговой форме. Т.е. я хочу оставить DataGridViewComboBoxColumn, но полностью лишить его кнопок и поставить ReedOnly. А потом на событие клик или даблклик или контекстное меню вешать вызов диалогового окна. Как это делать? Как из диалогового окна передавать значение обратно в ячейку. Может есть ссылка для полных чайников?
...
Рейтинг: 0 / 0
DataGridViewComboBoxColumn очень медленно открывается
    #39133558
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IvanVetrovТип столбца в DataGridViewComboBoxColumn красив, но работает очень медленно. В выпадающем списке больше 9000 строк. Причём обычный ComboBox прекрасно переваривает и 100000 и автодополнение прекрасно работает. А мне как раз нужно выбирать значение из такого списка. Полагаю от DataGridViewComboBoxColumn придётся отказаться. В таком случае, подскажите, пжл, как редактировать ячейку в другой диалоговой форме. Т.е. я хочу оставить DataGridViewComboBoxColumn, но полностью лишить его кнопок и поставить ReedOnly. А потом на событие клик или даблклик или контекстное меню вешать вызов диалогового окна. Как это делать? Как из диалогового окна передавать значение обратно в ячейку. Может есть ссылка для полных чайников?скорее всего надо виртуализацию сделать
...
Рейтинг: 0 / 0
DataGridViewComboBoxColumn очень медленно открывается
    #39133588
IvanVetrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,
А как это сделать? Можно поподробнее?
...
Рейтинг: 0 / 0
DataGridViewComboBoxColumn очень медленно открывается
    #39137277
IvanVetrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашёл идеальный вариант с точки зрения скорости.
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.
            
 //Вызов формы редактирования района
            if (e.ColumnIndex == 1)
            {
                Rectangle cellRec = polDataGridView.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false);
               
                cellLocation = cellRec.Location;
                cellLocation.X += polDataGridView.Location.X;
                cellLocation.Y += polDataGridView.Location.Y;

                comboBox1.Size = cellRec.Size;
                comboBox1.Location = cellLocation;
                comboBox1.Visible = true;
                comboBox1.Select();

            }
        }



А на событие ComboBox Leave, чтобы прятать ComboBox при потере фокуса.

Код: c#
1.
2.
3.
4.
        private void comboBox1_Leave(object sender, EventArgs e)
        {
            comboBox1.Visible = false;
        }



И тут главное выключать ComboBox только в Form_Load. А то не будет первый раз быстро открываться. Данные подгружаются в тот момент, когда они показываются на экране.

В общем, этот приём работает прекрасно. Данные в в комбобоксе отображаются моментально без малейшей задержки. И меняются замечательно. Но....


Как добавлять новые записи?
...
Рейтинг: 0 / 0
DataGridViewComboBoxColumn очень медленно открывается
    #39137536
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
IvanVetrovВ выпадающем списке больше 9000 строк
Пользователи благодарны, что не 90 000 строк
...
Рейтинг: 0 / 0
DataGridViewComboBoxColumn очень медленно открывается
    #39137553
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
IvanVetrovНашёл идеальный вариант с точки зрения скорости.
Вам бы в Олимпиадах выступать. Бенчмарки, то-се.
А вы о пользователях думаете?
У которых от прокрутки 9000 записей в комбобоксе кружится голова?
...
Рейтинг: 0 / 0
DataGridViewComboBoxColumn очень медленно открывается
    #39137780
IvanVetrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2,

Подумал. Для это прекрасно работает авдополнение. И причём моментально.
...
Рейтинг: 0 / 0
DataGridViewComboBoxColumn очень медленно открывается
    #39137782
IvanVetrov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ведь разработчики поисковика гугл и яндекс тоже подумали о пользователях и добавили автодополнение в строку поиска. И это миллион строк, если не миллиарды.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridViewComboBoxColumn очень медленно открывается
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]