У меня есть элемент управления WebBrowser в приложении WinForms, которое загружает XML, который преобразуется в HTML / CSS. Выглядит красиво, если я просто хочу посмотреть его там или в обычном браузере.
Когда форма загружается, она должна перейти к файлу, затем при возникновении события OnDocumentCompleted должна установить заголовок, нижний колонтитул и имя принтера по умолчанию в реестре, а затем вызвать Print () для любого количества копий пользователя. указал.
Я запустил его через отладчик, и он вызывает webBrowser.Print () правильное количество раз в событии OnDocumentCompleted. Ничто не является нулем, которого не должно быть, Visible - истина в элементе управления WebBrowser, как и AllowNavigation. И да, принтер включен и доступен по сети. Точно такой же код работает в других местах проекта, но не здесь.
Что еще может быть причиной того, что этот адский элемент управления игнорирует мои команды печати?
В идеале, я бы хотел, чтобы все это было скрыто за экраном, поскольку оно предназначено для запуска с использованием планировщика Windows, и пользователи никогда не должны его видеть. Я читал, что элемент управления должен быть видимым, поэтому, пока я не отработаю этот первый излом, это может подождать.
EDIT : последние две строки моего обработчика события OnDocumentCompleted установили для DialogResult значение ОК и закрыли форму. Удаление вызова метода Close () позволило ему распечатать, так что я предполагаю, что он не дошел до диспетчера очереди печати до закрытия формы и удаления элемента управления WebBrowser.
Если не считать установки произвольного лимита времени для ожидания перед закрытием, есть ли способ узнать, когда он завершит печать?