2014-10-31 16 views
2

我不明白为什么对任何HtmlElement的更改不会更改webBrowsers显示。HtmlElement.SetAttribute不适用于webBrowser

这是我的代码:

private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     if (webBrowser.ReadyState != WebBrowserReadyState.Complete) 
      return; 
     if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath) 
      return; 

     HtmlElementCollection elemCol = webBrowser.Document.All; 
     foreach (HtmlElement elem in webBrowser.Document.All) 
     { 
      if (elem.TagName.Equals("SPAN")) 
       elem.SetAttribute("width", "100"); //style="background: red;" 

      HtmlElement parentElem = elem.Parent; 
     } 
     webBrowser.Update(); 
     webBrowser.Refresh(); 
    } 

调试时我看看元素的OuterHtml - 这改变预期。 查看其父元素的innerHtml时,它也会发生更改。 即使webBrowser.Document的BodyHtml也发生了变化。 但是它对Gui中的web浏览器没有影响。查看源代码,您无法找到所做的更改。

有什么想法?我仍尝试更新()和刷新()但没有成功。

+0

这是什么语言?你应该使用正确的语言标签。 – Scimonster 2014-10-31 10:24:46

+0

对不起。我使用WinForms的C# – user1578497 2014-10-31 10:42:46

回答

0

我用这个来改变Style属性

var currentStyle = htmlElement.Style; 
htmlElement.Style = currentStyle.Replace("margin-left: 450px", "margin-left: 50px"); 
相关问题