2009-06-13 15 views

Respuesta

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

El parámetro booleano para ScrollIntoView() es verdadera para alinear la barra de desplazamiento con la parte superior del documento, y falso para alinear la barra de desplazamiento con la parte inferior del documento.

documentación de MSDN aquí: HtmlElement.ScrollIntoView

+3

Pero recuerde, ese HTML cargado en 'WebBrowser' necesita contener la etiqueta' Body'. Y si desea hacerlo justo después de cargar el contenido en la instancia 'WebBrowser', lo mejor es usar el evento' Navegado', por ejemplo: webBrowser1.Navigated + = (s1, e1) => {if (webBrowser1) .Document.Body! = Null) webBrowser1.Document.Body.ScrollIntoView (false); }; – infografnet

1

cuando no tenía cuerpo elemento final, esta trabajado para mí (VB.NET):

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

Soy la creación DocumentText propiedad del control WebBrowser (con etiquetas html y body) y el método Document.Body.ScrollIntoView(false) no funcionó para mí, pero esto está funcionando:

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); 
     } 
    } 

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

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

Añadiendo a la respuesta de user2349661 este es el mismo para C#:

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

n.b. habría agregado como comentario pero no tengo suficientes puntos!

1

uso de JavaScript crea problemas de seguridad es decir

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

Es mejor utilizar una llamada directa como

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

Dentro de un evento Documento Completo sería una buena opción:

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); 

} 
Cuestiones relacionadas