Ни элемент управления WebBrowser, ни собственный интерфейс IWebBrowser2 не предоставляют диалоговое окно поиска.Единственное взаимодействие - запуск диалога путем вызова команды OLE:
SHDocVw.WebBrowser webBrowserInstance = webBrowser1.ActiveXInstance as SHDocVw.WebBrowser;
webBrowserInstance.ExecWB(
SHDocVw.OLECMDID.OLECMDID_FIND,
SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DODEFAULT,
null, null);
Это работает хорошо, но вы не можете ни передавать переменные, ни получать обратно.К сожалению, диалог поиска не является дочерним окном и не имеет идентифицирующих классов или атрибутов.По сути, вам нужно проверить все окна верхнего уровня, принадлежащие вашему процессу, и выяснить, является ли одно из них рассматриваемым диалогом.Затем вы можете отправить WM_CLOSE в окно, или вызвать CloseWindow, или что-то похожее.
Здесь есть хороший набор функций для поиска окон (верхнего уровня), принадлежащих процессу: Какперечислить все окна, принадлежащие определенному процессу, используя .NET?