首先,我应该说我需要在我的应用程序中使用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的文档是动态的事实有关?
那么,我该如何解决这个异常呢?或者还有其他方法来模仿对某个领域的关注吗?
提前谢谢。
答案 0 :(得分:0)
应该使用FireEvent()而不是InvokeMember()。