Member 12561559 Ответов: 0

Изображение для форматирования ячеек Datagridview


У меня есть datable, который я заполнил данными из SQL server, и datagridview, который привязан к этим данным.

Из-за нескольких запросов, которые занимают некоторое время для заполнения различных столбцов в datatable, cellformatting затем подбирает их и отображает значок для результирующего столбца (около 8 столбцов на данный момент) и других столбцов в текстовом формате.

Я добавил поток, чтобы создать видимость увеличенной скорости, заполнив 3 важных текстовых столбца, и поток работает в фоновом режиме, заполняя остальную часть datatable, которая, в свою очередь, подхватывается событием cellformatting datagridview.

Теперь он работает, если я прокручиваю сетку и возвращаюсь туда, откуда прокручивал, и если я отключаю свой поток и прохожу через длительный процесс отображения, появляются значки, так что я знаю, что моя субработа работает либо в том же потоке, либо в отдельном - просто картина на отдельном потоке не выполняет свою работу.

Другие столбцы в моем потоке основаны на тексте, и они появляются через отдельный поток, когда datatable заполняется-но не значки (если я не прокручиваю dgv off view, а затем снова возвращаюсь).

Если процесс заставляет пользователя ждать, пока он делает все это, к сожалению, для них неприемлемо, поэтому мне нужно решить эту проблему - я ничего не могу сделать с улучшением запросов, поскольку они могут иметь 30,40 или даже 50 столбцов (даже если это просто текст, все равно требуется время, чтобы сделать сами запросы).

У кого-нибудь есть идеи о том, как заставить cellformatting перекрашиваться на конкретную клеточную основу?

Что я уже пробовал:

Я посмотрел на то, чтобы поместить цикл для прохождения через DGV (из основного потока) и выполнить запрос formattedvalue в цикле, поскольку я читал на нескольких других форумах, опубликованных за эти годы, что он заставляет форматировать ячейки datagrid, но он ничего не сделал.

Я также проверил dgv.refreshedit во время процесса cellformatting, и это ничего не дало, а oncellformatting обработал sub и
e.FormattingApplied = True
в субподрядчике oncellformatting - по-прежнему ничего.

0 Ответов