方法'setAttribute'的重载没有'2'参数

时间:2013-11-11 21:59:17

标签: c# visual-studio-2005 mshtml setattribute

我无法为元素设置新属性,VS 2005在下面的代码中返回以下错误:

错误1方法'setAttribute'没有重载需要'2'参数 错误2方法'setAttribute'没有重载需要'2'参数 错误3方法'setAttribute'没有重载需要'2'参数

可能是什么问题?

谢谢!

try
{
   IHTMLElementCollection AllElements = document.all;
   foreach (IHTMLElement Element in AllElements)
   {                   
      if (Element.tagName.ToUpper() == "IMG")
      {   
         if (Element.offsetHeight <= 40 && Element.offsetHeight >= 20)
         {
            if (Element.offsetWidth <= 160 && Element.offsetWidth >= 130)
            {
               Element.setAttribute("width", Element.offsetWidth);
               Element.setAttribute("height", Element.offsetHeight);
               Element.setAttribute("src", "images/newimage.png");
            }
         }
      }
   }            
}   
catch (Exception e)
{
   string erro = e.Message;
   System.Windows.Forms.MessageBox.Show(erro);
}

1 个答案:

答案 0 :(得分:1)

MSDN:看来第三个参数应该是可选的。

lFlags [in,optional] 类型:长

LONG指定是否使用区分大小写的搜索来定位属性。可以是以下值之一:

1

尊重strAttributeName的情况。

0

无论如何匹配strAttributeName。

您可以尝试传入0或1。

Element.setAttribute("width", Element.offsetWidth, 0);
Element.setAttribute("height", Element.offsetHeight, 0);
Element.setAttribute("src", "images/newimage.png", 0);

添加上述Hans评论的信息(如下所示):

“VS2005很老了.C#v2还不支持可选参数。” - Hans Passant:)