2

.NETWebBrowserコントロールを使用してTextAreaの値を設定しようとしています。

次のコードを使用してテキストボックスの値を設定できました(「username」をtexboxの名前に置き換えてください)。

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

(GetElementByIdを使用して)TextAreaで同様のコードを使用しようとしましたが、TextArea入力タイプに「Value」属性が含まれていないことを思い出せませんでした。TextAreaのInnerHtmlとInnerTextも設定しようとしましたが、TextArea入力の値を設定しようとすると、コンパイラーはnull参照例外エラーまたはインデックス範囲外エラーをスローし続けます。

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コントロールの別のインスタンスの要素に挿入しようとすると、 インデックスの範囲外のエラーがスローされます。
  • GetElementBy ..WebBrowser.Documentプロパティから直接実行できるため、 All[]コレクションにアクセスする必要はありません。
于 2009-05-19T14:48:33.653 に答える