Что ж, у меня есть всплывающее окно в элементе управления WebBroswer .NET Framework, которое я записываю с помощью обработчика событий NewWindow следующим образом.
WebBrowser w = new WebBrowser();
SHDocVw.WebBrowser_V1 web = (SHDocVw.WebBrowser_V1)w.ActiveXInstance;
web.NewWindow += new SHDocVw.DWebBrowserEvents_NewWindowEventHandler(web_NewWindow);
Новое всплывающее окно в новой форме с новым экземпляром элемента управления WebBrowser.
void web_NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed)
{
Processed = true;
WebBrowser w2 = new WebBrowser();
Form PopUp = new Form();
PopUp.Controls.Clear();
PopUp.Controls.Add(w2);
w2.Dock = DockStyle.Fill;
PopUp.Show();
w2.Navigate(URL);
w2.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(w2_DocumentCompleted);
}
Моя проблема в том, что объект Window.Opener является нулевым в процессе.
Страница использует это поле для возврата пользователя в исходное окно и заполняет некоторые значения в форме.
Есть ли способ передать объект Window.Opener из одного элемента управления WebBrowser в другой? Кажется невозможным, что это сработает, но я должен попробовать.
Спасибо