2

我正在寻找使用 .NET WebBrowser 控件设置 TextArea 的值。

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

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

我尝试在 TextArea 上使用类似的代码(使用 GetElementById),但忘记了 TextArea 输入类型不包含“Value”属性。我也尝试设置 TextArea 的 InnerHtml 和 InnerText,但编译器在尝试设置 TextArea 输入的值时继续抛出空引用异常错误或索引越界错误。

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

4

2 回答 2

8

假设您有以下 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";
}
于 2009-02-24T01:18:59.023 回答
1

有几点以防万一您还没有意识到这些:

  • GetElementById只会返回单个项目或 null,它不是一个集合。
  • 如果您尝试将 WebBrowser 控件的一个实例中的元素插入到 WebBrowser 控件的另一个实例的元素中,则会引发 index out of bounds 错误。
  • GetElementBy..可以直接从WebBrowser.Document属性运行,因此无需访问All[]集合。
于 2009-05-19T14:48:33.653 回答