Jak można programowo przewinąć do końca programu System.Windows.Forms.WebBrowser?Jak przewinąć do końca System.Windows.Forms.WebBrowser?
Odpowiedz
ctlWebBrowser.Document.Body.ScrollIntoView(false);
Parametr logiczna dla ScrollIntoView() jest prawdziwe, aby wyrównać pasek przewijania z górnej części dokumentu, a fałszywy wyrównać pasek przewijania z dolnej części dokumentu.
dokumentacji MSDN tutaj: HtmlElement.ScrollIntoView
Kiedy nie miałem kończącą ciało elementu, to pracował dla mnie (VB.NET):
WebBrowser1.Document.Body.All(WebBrowser1.Document.Body.All.Count - 1).ScrollIntoView(False)
mam ustawienie DocumentText
własność kontroli WebBrowser
(z tagami html i body) i metoda Document.Body.ScrollIntoView(false)
nie zadziałały, ale działa:
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);
}
}
źródło: http://kiranpatils.wordpress.com/2010/07/19/webbrowsercontrol-scroll-to-bottom/
wb1.Navigate("javascript:window.scroll(0,document.body.scrollHeight);")
Dodawanie do odpowiedzi user2349661 za to samo dla C#:
WebBrowser1.Document.Body.All[WebBrowser1.Document.Body.All.Count -1].ScrollIntoView(False)
nb dodałbym komentarz, ale nie mam wystarczającej liczby punktów!
użyciu JavaScript tworzy czyli problemy z bezpieczeństwem
webBrowser.Navigate("javascript:window.scroll(...);")
Lepiej jest użyć bezpośredniego połączenia jak
webBrowser.Document.Window.ScrollTo(...)
wewnątrz przypadku dokument wypełniony byłby dobrym rozwiązaniem:
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. Jak przewinąć do dołu ListBox?
- 2. System.Windows.Forms.WebBrowser: wymusić X86?
- 3. Jak programowo przewinąć element HTML?
- 4. Jak przewinąć do ostatniego wiersza modelu Sqlite w QTableView?
- 5. UIWebView nie przewijania do końca/dolny
- 6. dynatree - Jak przewinąć do aktywnego węzła?
- 7. Jak przewinąć do określonej lokalizacji w JScrollPane
- 8. Jak przewinąć przepełniony div do hasztagu (kotwicy)?
- 9. jak przekazać UIWebView przewinąć do UIScrollView? (warunkowo)
- 10. Jak szybko przewinąć gałąź do głowy?
- 11. jak przewinąć do załadowanego interfejsu ui-view
- 12. Jak przewinąć do okna modalnego w javascript
- 13. Jak przewinąć do góry strony w AngularJS?
- 14. Jak przewinąć kratkę?
- 15. Przewiń do końca FlatList po wyświetleniu klawiatury
- 16. PHP Jak dodać do końca tablicy?
- 17. Jak dopasować ciąg do końca pliku tekstowego?
- 18. Jak dodać do końca listy w prologu
- 19. Bash, jak dodać słowo do końca wiersza?
- 20. Jak oszacować czas pozostały do końca (dokładnie)?
- 21. Jak dodać linie do końca pliku - linux
- 22. Jak przewinąć w dół - JQuery
- 23. Substring przejść do końca ciągu
- 24. Jak przewinąć stronę z selenem
- 25. Przewiń do końca ScrolledWindow/TextView
- 26. Selen: Przewiń do końca strony
- 27. Uzyskanie wskaźnik do końca tablicy
- 28. Jak przewinąć ostatnie przeciągnięcie, takie jak Tinder
- 29. Komenda AWK do wydrukowania do końca wiersza
- 30. Programowo przewinąć do góry obiektu NestedScrollView
Pamiętaj jednak, że HTML załadowany do 'WebBrowser' musi zawierać tag' Body'. A jeśli chcesz to zrobić zaraz po załadowaniu zawartości do instancji 'WebBrowser', najlepiej jest użyć zdarzenia' Navigated', na przykład: webBrowser1.Navigated + = (s1, e1) => {if (webBrowser1 .Document.Body! = Null) webBrowser1.Document.Body.ScrollIntoView (false); }; – infografnet