1

我将VB.Net应用程序转移到C#并在我构建它时。出现了这个错误-

“mshtml.IHTMLImgElement”不包含“getattribute”的定义,并且找不到接受“mshtml.IHTMLImgElement”类型的第一个参数的扩展方法“getattribute”(您是否缺少 using 指令或程序集引用?)

那么我该如何替换这个getattribute调用呢?

这是代码

private void captcha()
{
   mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2) WebBrowser1.Document.DomDocument;
   mshtml.IHTMLControlRange imgrange = (mshtml.IHTMLControlRange) (((mshtml.HTMLBody) doc.body).createControlRange());

   foreach (mshtml.IHTMLImgElement img in doc.images)
   {
      if (img.getattribute("src").ToString().Contains("urltoimg"))
      {
         imgrange.add((mshtml.IHTMLControlElement) img);
         imgrange.execCommand("copy", false, null);
         PictureBox1.Image = (System.Drawing.Image) (Clipboard.GetDataObject().GetData(DataFormats.Bitmap));
         break;
      }
   }
}
4

2 回答 2

0

尝试“GetAttribute”。VB 不区分大小写,因此“getattribute”可以在 VB 中工作,但是 C#(以及几乎所有其他语言)区分大小写。

于 2013-09-05T14:21:17.553 回答
0

您需要将mshtml.IHTMLImgElement转换为mshtml.IHTMLElement,然后它会为您提供getAttribute()方法

您可以将此行替换为:

if (((mshtml.IHTMLElement)img.getAttribute("src")).ToString().Contains("urltoimg"))

注意大小写为“getAttribute”,而不是“getattribute”。

于 2013-09-05T14:26:45.037 回答