Во-первых, я должен сказать, что мне нужно , чтобы использовать объект Internet Explorer (IE9) в моем приложении, я не могу использовать элемент управления webBrowser. Итак, я хочу эмулировать событие фокуса на поле на веб-странице:
webBrowser.Document.Forms[0].GetElementsByTagName("input")[0].InvokeMember("onFocus");
webBrowser.Document.Forms[0].GetElementsByTagName("input")[0].SetAttribute("value", "aaaa");
webBrowser.Document.Forms[0].GetElementsByTagName("input")[1].InvokeMember("onFocus");
webBrowser.Document.Forms[0].GetElementsByTagName("input")[1].SetAttribute("value", "bbbbb");
Переменная webBrowser: public static SHDocVw.InternetExplorer webBrowser;
. Его значение установлено на new SHDocVw.InternetExplorer();
.
Когда первая строка кода выполняется, я получаю исключение,
"System.MarshalByRefObject.InvokeMember(<...>)" Inaccessible due to protection level.
Я использую функцию private static
. Может быть, это связано с тем, что документ IE является динамическим?
Итак, как я могу исправить это исключение? Или есть другой способ эмулировать фокус на поле?
Заранее спасибо.