364 Stimmen

Wie kann ich in einem mehrzeiligen Textfeld automatisch zum unteren Rand blättern?

Ich habe ein Textfeld mit der Eigenschaft "Multiline" auf "true" gesetzt. In regelmäßigen Abständen füge ich neue Textzeilen hinzu. Ich möchte, dass das Textfeld automatisch zum untersten Eintrag (dem neuesten) blättert, wenn eine neue Zeile hinzugefügt wird. Wie kann ich das erreichen?

1voto

midoriha_senpai Punkte 177

Alle anderen, die hier eine Webforms-Implementierung erwarten, sollten den endRequest-Event-Handler des Page Request Managers ( https://stackoverflow.com/a/1388170/1830512 ). Hier ist, was ich für meine TextBox in einer Inhaltsseite von einer Masterseite aus gemacht habe, bitte ignorieren Sie die Tatsache, dass ich keine Variable für das Steuerelement verwendet habe:

var prm = Sys.WebForms.PageRequestManager.getInstance();

function EndRequestHandler() {
    if ($get('<%= ((TextBox)StatusWindow.FindControl("StatusTxtBox")).ClientID %>') != null) {
        $get('<%= ((TextBox)StatusWindow.FindControl("StatusTxtBox")).ClientID %>').scrollTop = 
        $get('<%= ((TextBox)StatusWindow.FindControl("StatusTxtBox")).ClientID %>').scrollHeight;
    }
}

prm.add_endRequest(EndRequestHandler);

-1voto

TooGeeky Punkte 137

Das hat nur bei mir funktioniert...

txtSerialLogging->Text = "";

txtSerialLogging->Text(e) anhängen;

Ich habe alle oben genannten Fälle ausprobiert, aber das Problem ist, dass der Text in meinem Fall abnehmen, zunehmen und auch für eine lange Zeit statisch bleiben kann. statisch bedeutet, statische Länge (Zeilen), aber der Inhalt ist anders.

Also, ich war mit einer Zeile springen Situation am Ende, wenn die Länge (Zeilen) bleibt gleich für einige Zeit ...

-1voto

DMike92 Punkte 1

Ich verwende dafür eine Funktion:

private void Log (string s) {
    TB1.AppendText(Environment.NewLine + s);
    TB1.ScrollToCaret();
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X