¿Cómo puede desplazarse hacia el final de System.Windows.Forms.WebBrowser programmatically?Cómo desplazarse al final de System.Windows.Forms.WebBrowser?
Respuesta
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
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)
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/
wb1.Navigate("javascript:window.scroll(0,document.body.scrollHeight);")
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!
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(...)
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);
}
- 1. mejor manera para desplazarse al final de ScrollViewer
- 2. Android ScrollView se niega a desplazarse al final
- 3. Cómo llegar al final de la TextArea
- 4. System.Windows.Forms.WebBrowser: forzar X86?
- 5. ¿Cómo desplazarse al final de la página cuando finaliza la devolución de datos en asp.net?
- 6. ¿Cómo desplazarse rápidamente al último/final del historial de comandos en bash?
- 7. dynatree - ¿Cómo desplazarse al nodo activo?
- 8. Deshabilitar rebotes verticales de UITableView al desplazarse
- 9. ¿Cómo mover al primer niño al final?
- 10. ¿Cómo desplazarse constantemente hasta el final del texto en el cuadro de texto de líneas múltiples?
- 11. ¿Cómo borrar los datos de sesión de System.Windows.Forms.WebBrowser?
- 12. C# System.Windows.Forms.WebBrowser Requiere que se instale Flash
- 13. Las imágenes de la lista de Android desaparecen al desplazarse
- 14. Java JList desplazarse al elemento seleccionado
- 15. Buscar Javascript y desplazarse al texto
- 16. mouseover/mouseenter no activado al desplazarse
- 17. Cortar al principio/al final de la línea, pegar al final/principio de la línea
- 18. El foco salta aleatoriamente al desplazarse
- 19. ¿Cómo eliminar una coma al final?
- 20. Cambie el texto al desplazarse, luego regrese al texto anterior
- 21. Escribiendo al final del archivo
- 22. ListView no se desplaza al final, cuando el teclado usa
- 23. lista Mover elemento al final de STL
- 24. ¿Es posible hacer un efecto de "complemento" al desplazarse?
- 25. ¿Un evento de barra de desplazamiento al desplazarse?
- 26. dejar de desplazarse al principio después de la petición AJAX
- 27. slideDown salta abruptamente al final
- 28. '^ M' carácter al final de las líneas
- 29. El pulgar de desplazamiento rápido desaparece al desplazarse por AlphabetIndexer
- 30. Mantener los ceros al final
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