Ich arbeite an einer einfachen Chat-Anwendung mit einem System.Windows.Forms.WebBrowser-Steuerelement, um die Nachrichten zwischen dem Benutzer und dem Empfänger anzuzeigen. Wie bekomme ich das Steuerelement automatisch jedes Mal nach unten, wenn ich den DocumentText des Steuerelements aktualisiere?WebBrowserControl Nach unten scrollen
Antwort
Danke Jungs - ich Sie stimmten beide, aber weder funktionieren würde für meine Situation. Was ich am Ende war tun
webCtrl.Document.Window.ScrollTo(0, int.MaxValue);
Wenn Sie dies in VB tun, verwenden Sie nicht Integer.MaxValue, verwenden Sie Int16 .MaxValue stattdessen. – Andy
würde ich die Autoscrolloffset-Eigenschaft verwenden, und der die untere linke Ecke des WebBrowser-Steuerelement gesetzt, so etwas wie:
webCtrl.AutoScrollOffset = new Point(0, webCtrl.Height);
Dies ist wahrscheinlich übertrieben, aber man könnte auch Skript auf dem WebBrowser-Steuerelement aufrufe und dann Verwenden Sie die Bildlaufeigenschaften des body-Tags. Oder die scrollTo-Methode des Fensters.
Um ein Skript aufzurufen, verfügt das WebBrowser-Steuerelement über eine Document-Eigenschaft, die das Dokumentobjekt aus dem DOM darstellt. Es hat eine Methode namens InvokeScript, die Sie eine Zeichenfolge von JavaScript übergeben können, um ausgeführt zu werden.
Aber ... wenn die Autoscrolloffset-Eigenschaft funktioniert ... ja, ich würde nur dass anstatt in JavaScript zu bekommen :)
Sie Scroll-Position an der Spitze halten und neue Nachricht einfügen an der Spitze.
, die nicht brauchen nach unten scrollen, sein Aussehen wie twitter :)
user2:
new message ← a new message is insert on top
user1:
old message
public virtual void ScrollMessageIntoView()
{
System.Windows.Forms.Application.DoEvents();
if (browser == null || browser.IsDisposed)
return;
if (browser.Document == null)
{
browser.Document.Window.ScrollTo(0,
browser.Document.Body.ScrollRectangle.Height);
}
}
ähnliche Frage: [? Wie scrollt man von System.Windows.Forms.WebBrowser zu beenden] (http: //stackoverflow.com/questions/990651/how-to-scroll-to-end-of-system-windows-forms-webbrowser) – infografnet