2009-06-13 15 views

Odpowiedz

14
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

+3

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

1

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

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/

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

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!

1

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(...) 
0

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

} 
Powiązane problemy