Установить значение TextArea внутри элемента управления WebBrowser (C # / .NET) - PullRequest
2 голосов
/ 24 февраля 2009

Я хочу установить значение TextArea с помощью .NET WebBrowser Control.

Мне удалось установить значения текстовых полей, используя следующий код (замените «username» на имя texbox):

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

Я попытался использовать похожий код в TextArea (используя GetElementById) и не смог вспомнить, что входные типы TextArea не содержат атрибута «Значение». Я также попытался установить InnerHtml и InnerText для TextArea, но компилятор продолжает выбрасывать ошибки исключений нулевой ссылки или индексировать ошибки границ при попытке установить значение ввода TextArea.

У кого-нибудь есть идеи, как установить текст внутри TextArea с помощью элемента управления WebBrowser? Любые советы будут высоко ценится!

Ответы [ 2 ]

7 голосов
/ 24 февраля 2009

Предположим, у вас был следующий 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 голос
/ 19 мая 2009

Пара моментов на тот случай, если вы еще не поняли:

  • GetElementById вернет только один элемент или ноль, это не коллекция.
  • Ошибка индекса вне границ будет выдана, если вы попытаетесь вставить элементы из одного экземпляра элемента управления WebBrowser в элементы другого экземпляра элемента управления WebBrowser.
  • GetElementBy .. можно запустить прямо из свойства WebBrowser.Document , поэтому нет необходимости обращаться к коллекции All [] .
...