2009-02-24 8 views
2

Je cherche à définir la valeur d'un objet TextArea à l'aide du contrôle .NET WebBrowser.Définir la valeur d'une TextArea dans un contrôle WebBrowser (C#/.NET)

Je suis en mesure de définir les valeurs de champs de saisie en utilisant le code suivant (remplacer « nom d'utilisateur » avec le nom du TexBox):

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

J'ai essayé d'utiliser un code similaire sur un TextArea (en utilisant GetElementById) et n'a pas pu se souvenir que les types d'entrée TextArea ne contiennent pas d'attribut "Value". J'ai également essayé de définir InnerHtml et InnerText de TextArea mais le compilateur continue à lancer des erreurs d'exception de référence null ou des erreurs d'index hors limites lors de la définition de la valeur de l'entrée TextArea.

Est-ce que quelqu'un a une idée sur la façon de définir le texte dans un TextArea en utilisant le contrôle WebBrowser? Tout conseil serait très apprécié!

Répondre

7

Supposons que vous avez le code HTML suivant:

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

Vous pouvez définir le texte dans le textarea comme ceci:

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

Un couple de points juste au cas où vous ne l'avez pas réalisé ces:

  • GetElementById renverrons seulement un seul élément ou null, ce n'est pas une collection.
  • Les erreurs hors limite seront levées si vous essayez d'insérer des éléments d'une instance du contrôle WebBrowser dans des éléments d'une autre instance du contrôle WebBrowser.
  • Le GetElementBy .. peut être exécuté directement à partir de la WebBrowser.Document biens ainsi Theres aucun besoin d'accéder à la Tous [] collection.
Questions connexes