У меня были большие проблемы с этим: загрузка веб-страницы, предназначенной для печати, с отображением раздражающего диалогового окна «Печать». InjectBlocker был единственным способом, который работал, но довольно ненадежным. При определенных условиях (я полагаю, это связано с тем, что элемент управления WebBrowser использует движок IE, а это зависит от установленной версии IE), диалоговое окно печати по-прежнему отображается. Это серьезная проблема, решение работает на Win7 с установленным IE9, но WinXP с IE8 отображает диалоговое окно, несмотря ни на что.
Я полагаю, что решение заключается в изменении исходного кода и удалении javascript для печати до того, как элемент управления отобразит страницу. Однако я попытался сделать это с помощью свойства DocumentText элемента управления webbrowser, и оно не работает. Свойство не только для чтения, но оно не влияет, когда я изменяю источник.
Решение, которое я нашел для моей проблемы, - это скрипт Exec:
string alertBlocker = "window.print = function emptyMethod() { }; window.alert = function emptyMethod() { }; window.open = function emptyMethod() { };";
this.Document.InvokeScript("execScript", new Object[] { alertBlocker, "JavaScript" });