Страницы: 1
RSS
Перерисовка объектов занимает длительное время, Перерисовка объектов занимает длительное время
 
Добрый день.
В Эксель отсутствует события по управлению обновлением экрана при использовании Scroll. Проблема возникает когда при перемещении по листу, за лист, начинается перерисовка объектов (на листе несколько сотен-тысяч Shape). Перерисовка занимает длительное время.
Добавляю Shapes, я так.

Dim Фигура As Shape
Set Фигура = Диаграмма.Shapes.AddShape(msoShapeRectangle, Прямоугольник.Left, Прямоугольник.Top, Прямоугольник.Width, Прямоугольник.Height)

Поэтому вижу такую логику: всегда отключать/блокировать (перехватывать сообщения) на перерисовку для листа "Диаграмма" и самому включать ее в тех случаях когда посчитаю необходимым.
Возможно реализация через это InvalidateRect и WM_Paint.
 
Цитата
Павел К написал:
Добавляю Shapes, я так.
А, может, не добавлять вообще эту тысячу фигур? зачем их столько на листе?
И проблема исчезнет..
 
Игорь, так наверно Павел К, это Тацуо Хориути
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
А, может, не добавлять вообще эту тысячу фигур? зачем их столько на листе?И проблема исчезнет..
Это не решение.
 
Павел К, информативно, конечно  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
не знаю причины, но в моем случае  
Код
Диаграмма.Line.Visible = msoFalse

приводило к перерисовке листа.

Убрал строку. Проблема, похоже решена.
Всем спасибо
Изменено: Павел К - 28.10.2023 23:52:21
Страницы: 1
Наверх