Défilement WebBrowser par programmation parfois ne fonctionne pas
Je suis en utilisant le System.Windows.Forms.WebBrowser
de contrôle et j'ai besoin de le faire par programmation de défilement.
Par exemple, j'utilise ce code pour faire défiler vers le bas:
WebBrowser.Document.Body.ScrollTop += WebBrowser.Height
Le problème est que dans certains sites, il fonctionne, mais dans d'autres, il n'est pas
http://news.google.com (works good)
http://stackoverflow.com/(doesn't work)
C'est peut-être quelque chose sur le corps de code, mais je ne peux pas comprendre.
J'ai aussi essayé:
WebBrowser.Document.Window.ScrollTo(0, 50)
mais de cette façon, je ne sais pas la position actuelle.
Vous êtes peut-être en essayant de faire défiler avant que le document a été complètement chargée?
non, le document est complètement chargé
non, le document est complètement chargé
OriginalL'auteur InfoStatus | 2009-06-10
Vous devez vous connecter pour publier un commentaire.
c'est un moyen facile pour faire défiler à chaque point d'entrée de votre
OriginalL'auteur Porphan
Cet exemple fonctionne autour de bizarreries dans de défilement de la barre de propriétés qui peuvent causer le comportement que vous voyez.
Vous aurez besoin d'ajouter une référence COM Microsoft HTML Object Library (mshtml) avant que cela ne fonctionne.
En supposant que vous avez un Navigateur nommé webBrowser1, vous pouvez essayer ce qui suit. J'utilise un couple de différentes interfaces, car j'ai trouvé que les valeurs renvoyées pour la faire défiler les propriétés sont incompatibles.
Cela fonctionne pour moi. Vous pouvez éviter de référencement mshtml par l'aide de la réflexion: var dd = navigateur.Document.DomDocument; var doc = dd.GetType().InvokeMember ("documentElement", BindingFlags.GetProperty, null, dd, null); doc.GetType ().InvokeMember ("scrollTop", BindingFlags.SetProperty, null, doc, new object [] { 500 });
OriginalL'auteur jjxtra