我以前有个程序vs2003 vb的,里边有这么一段代码Dim doc As mshtml.HTMLDocument
doc = CType(web.Document, mshtml.HTMLDocument)
Dim webDoc As Object
For Each ee As mshtml.HTMLInputTextElement In doc.getElementsByTagName("input")
    webDoc = ee
    webDoc.onkeyup()
Next
最近有一类似程序需要这个功能,不过是用的vs2008 C#,然后我改成了mshtml.HTMLDocument doc;
doc = (mshtml.HTMLDocument)web.Document.DomDocument;
object webDoc=null;foreach (mshtml.HTMLInputTextElement ee in doc.getElementsByTagName("input")){
            webDoc = ee;
            webDoc.onkeyup();
}其他还好说,就是webDoc.onkeyup();这句有问题,vb下用得没问题c#下通不过,请高人指点下~~~

解决方案 »

  1.   

    mshtml.HTMLInputTextElement 不清楚你这类库的封装。
    但你可以这么写:
    foreach (HtmlElement ee in web.Document.GetElementsByTagName("input")){
                ee.InvokeMember("onkeyup");
    }
      

  2.   


    mshtml.HTMLInputTextElement这个就是Microsoft.mshtml(C:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll)我引用错了吗?在vs03时就是引用的这个。问题是ee没有InvokeMember方法怎么办?
      

  3.   

    我主要就是想触发文本框上的keyup事件。不基于我的代码也没事,还有其他解决办法吗?
      

  4.   

    好了,搞定了,哎,为什么每次都是我自问最后自解,不过还是谢谢wjq 
      

  5.   

    直接用WebBrowser的框架呀,不用强转到mshtml,HtmlElement 有InvokeMember,你只要实现功能,也不一定完全要翻译vb吧
      

  6.   

    是的,我现在就是用WebBrowser的了。