2009-06-13 4 views

Répondre

14
ctlWebBrowser.Document.Body.ScrollIntoView(false); 

Le paramètre booléen pour ScrollIntoView() est vrai pour aligner la barre de défilement avec le haut du document, et faux pour aligner la barre de défilement au bas du document.

documentation MSDN ici: HtmlElement.ScrollIntoView

+3

Mais rappelez-vous que le HTML chargé dans 'WebBrowser' doit contenir la balise' Body'. Et si vous souhaitez le faire juste après le chargement du contenu dans l'instance 'WebBrowser', le mieux est d'utiliser l'événement' Navigated', par exemple: webBrowser1.Navigated + = (s1, e1) => {if (webBrowser1 .Document.Body! = Null) webBrowser1.Document.Body.ScrollIntoView (false); } – infografnet

1

Quand je n'avais pas la fin élément corps, cela a fonctionné pour moi (VB.NET):

WebBrowser1.Document.Body.All(WebBrowser1.Document.Body.All.Count - 1).ScrollIntoView(False) 
12

Je mise DocumentText propriété du contrôle WebBrowser (avec les balises HTML et corps) et la méthode Document.Body.ScrollIntoView(false) n'a pas fonctionné pour moi, mais cela fonctionne:

private void ScrollToBottom() 
    { 
     // MOST IMP : processes all windows messages queue 
     Application.DoEvents(); 

     if (webBrowser1.Document != null) 
     { 
      webBrowser1.Document.Window.ScrollTo(0, webBrowser1.Document.Body.ScrollRectangle.Height); 
     } 
    } 

source: http://kiranpatils.wordpress.com/2010/07/19/webbrowsercontrol-scroll-to-bottom/

1
wb1.Navigate("javascript:window.scroll(0,document.body.scrollHeight);") 
1

Ajoutant à la réponse de ce user2349661 est le même pour C#:

WebBrowser1.Document.Body.All[WebBrowser1.Document.Body.All.Count -1].ScrollIntoView(False) 

N.B. aurait ajouté comme un commentaire mais je n'ai pas assez de points!

1

En utilisant javascript crée-à-dire les problèmes de sécurité

webBrowser.Navigate("javascript:window.scroll(...);") 

Il est préférable d'utiliser un appel direct comme

webBrowser.Document.Window.ScrollTo(...) 
0

l'intérieur d'un événement rempli de document serait une bonne option:

private void Form1_Load(object sender, EventArgs e) 
{ 

webBrowser1.DocumentCompleted += WebBrowser1_DocumentCompleted; 
webBrowser1.Navigate("http://stackoverflow.com/questions/990651/how-to-scroll-to-end-of-system-windows-forms-webbrowser"); 

} 


private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 

WebBrowser browser = sender as WebBrowser; 

browser.Document.Body.ScrollIntoView(false); 

} 
Questions connexes