WebBrowser.Document.Le corps est toujours null
J'ai un WebBrowser
ensemble de documents pour être en mode édition. Je suis en train d'essayer de manipuler le texte interne de l'élément du corps en utilisant WebBrowser.Document.Body.InnerText
, cependant, WebBrowser.Document.Body
reste nulle.
Voici le code où j'ai créer du contenu du document:
private WebBrowser HtmlEditor = new WebBrowser();
public HtmlEditControl()
{
InitializeComponent();
HtmlEditor.DocumentText = "<html><body></body></html>";
myDoc = (IHTMLDocument2)HtmlEditor.Document.DomDocument;
myDoc.designMode = "On";
HtmlEditor.Refresh(WebBrowserRefreshOption.Completely);
myContentsChanged = false;
}
Je peux modifier le code et tout et tout, mais je ne comprends pas pourquoi HtmlEditor.Document.Body
reste nulle. Je sais que je pourrais toujours juste réinitialiser le corps du document à chaque fois que j'ai besoin de charger de texte dans le formulaire, mais je préfère comprendre pourquoi c'est se comporter de la façon dont il est, si rien d'autre alors pour la connaissance.
Toute aide est grandement appréciée.
pas de dés, j'ai posté ici après la lecture de cet article
Jetez un oeil à weblogs.asp.net/gunnarpeipman/archive/2009/08/15/...
Merci pour l'article, mais le corps du document reste nul :\
OriginalL'auteur Bender the Greatest | 2011-11-15
Vous devez vous connecter pour publier un commentaire.
Vous avez à attendre pour le Navigateur Web
DocumentCompleted
cas d'incendie pour laDomDocument.Body
de ne pas être null. Je viens de tester pour vérifier. Je suppose que la question demeure: comment êtes-vous en mesure de les modifier par le biais de la sous-jacentes de l'interface COM lorsque le document n'a pas complètement chargée?J'ai vérifié pour voir si le
IHTMLDocument2
pointeurs étaient les mêmes dans les DocumentCompleted et le constructeur. Ils sont, ce qui pourrait indiquer que le sous-jacent de l'objet COM réutilise un seul document HTML de l'objet. Il semble que les modifications que vous apportez dans le constructeur, à moins d'avoir une très bonne chance d'obtenir l'écrasement ou la levée d'une exception.Par exemple, si je fais cela dans le constructeur, j'obtiens une erreur:
Si je fais la même chose dans un DocumentCompleted gestionnaire, il fonctionne très bien.
Espère que cette aide. Merci.
OriginalL'auteur Nathan Andrew Mullenax
Utilisation
DocumentCompleted
événement tout d'abord, il se produit lorsque le contrôle WebBrowser termine le chargement d'un document:ou de manière simple:
OriginalL'auteur Ria
Vous devez laisser le
WebBrowser
contrôle de travailler seul, un peu pour lui donner un certain temps pour régler leDocument.Body
propriété.- Je le faire en appelant
Application.DoEvents();
.Par exemple dans votre code:
OriginalL'auteur remio
OriginalL'auteur wertyk