Мне нужно сохранить часть старого проекта Windows VB6 (поэтому не говорите мне перенести его на VB.NET).Эта программа встраивает хорошо известный элемент управления веб-браузером (IE), в который загружает локальные HTML-файлы (содержащие различную статистику, но это не имеет значения).Зная, что нам не нужна полоса прокрутки в представлении веб-браузера (даже если HTML-страница длиннее окна веб-браузера, нам просто нужно посмотреть, что находится сверху), мы управляем DOM для события DocumentComplete следующим образом:
Private Sub wb_DocumentComplete(ByVal pDisp As Object, URL As Variant)
wb.Document.documentElement.Style.overflow = "hidden"
ProcessWithDStats
End Sub
Все звуки правильные, и вертикальная полоса прокрутки хорошо исчезает, но теперь мне нужно добавить некоторые вещи в подпрограмму ProcessWithDStats (большая подпрограмма, вызывающая множество функций), которые должны быть уверены, что предыдущая операция DOM полностью завершена(Я имею в виду: полоса прокрутки скрыта, и ее содержимое повторно выровнено в соответствии с этой новой шириной без полосы прокрутки).
Итак, как это сделать?
В настоящее время ProcessWithDStats выполняется перед DOMуправление действительно завершено!
До сих пор вот мои попытки:
Я пытался добавить тестирование полосы прокрутки (сравнение ширины документа и клиентской области браузера)1) между двумя строками, но это не работает: тест в порядке, но перекомпоновка текста (из-за этого изменения ширины при исчезновении полосы прокрутки) не имеетt достаточно времени для применения до включения ProcessWithDStats.
Я пытался Sleep (), но он блокирует всю программу (включая рендеринг веб-браузера)
Хорошо, есть ли способ ждать реального применения данного управления DOM в этом элементе управления WebBrowser?
Я имею в виду что-то вроде:
Do
Doevents
Loop Until [DOM modification and rendering completed]