在WebBrowser控件(C#/ .NET)中设置TextArea的值

时间:2009-02-24 00:49:03

标签: c# .net html webbrowser-control

我希望使用.NET WebBrowser控件设置TextArea的值。

我已经能够使用以下代码设置文本框的值(将“username”替换为texbox的名称):

webBrowser1.Document.All.GetElementsByName("username")[0].SetAttribute("Value", "SomeUser");

我尝试在TextArea上使用类似的代码(使用GetElementById)并且无法记住TextArea输入类型不包含“Value”属性。我还尝试设置TextArea的InnerHtml和InnerText,但在尝试设置TextArea输入的值时,编译器继续抛出空引用异常错误或索引超出范围错误。

有没有人知道如何使用WebBrowser控件在TextArea中设置文本?任何建议将不胜感激!

2 个答案:

答案 0 :(得分:7)

假设您有以下HTML:

<html>
<body>
   <textarea id='foo'>Testing</textarea>
</body>
</html>

您可以像textarea这样设置文字:

HtmlElement textArea = webBrowser1.Document.All["foo"];
if (textArea != null)
{
    textArea.InnerText = "This is a test";
}

答案 1 :(得分:1)

有几点,以防你没有意识到这些:

  • GetElementById 只返回单个项目或null,它不是集合。
  • 如果您尝试将WebBrowser控件的一个实例中的元素插入到另一个WebBrowser控件实例的元素中,则会抛出
  • 索引越界错误
  • GetElementBy .. 可以直接从 WebBrowser.Document 属性运行,因此无需访问所有[] 集合。