Heim > Artikel > Backend-Entwicklung > Ausführliche Erklärung, wie man synchrones Scrollen von zwei Richtextbox-Steuerelement-Bildlaufleisten in C# implementiert
Dieser Artikel führt Sie hauptsächlich in die einfache Methode der C#Implementierung von zwei Richtextbox-Steuerelementen-Bildlaufleisten zum synchronen Scrollen ein. Die Einführung im Artikel ist sehr detailliert und bietet für jeden eine gewisse Referenz . Value, Freunde in Not kommen und schauen unten vorbei.
Vorwort
Manchmal müssen wir Vergleichsartikel usw. implementieren und den Text oft in zwei Richtextbox-Steuerelemente einfügen, aber wenn nötig Scrollen und betrachten Sie gleichzeitig, um bessere Anzeigeeffekte zu erzielen.
Natürlich kann der Zweck mit der herkömmlichen Methode des Überladens von Steuerelementen oder benutzerdefinierten Steuerelementen erreicht werden, aber für Anfänger oder Personen, die dieses Steuerelement nur einmal verwenden möchten, ist es sehr mühsam. Als nächstes werde ich eine einfache und schnelle Methode zur Implementierung bereitstellen: die Synchronisierungsfunktion der Richtextbox-Bildlaufleiste.
Die Methode ist wie folgt:
Zuerst erstellen wir zwei Richtextbox-Steuerelemente im Winform-Formular
Zwei Methoden werden unten vorgestellt. Ich verwende oft die
erste Methode, um die Zeilennummer im Richtextbox-Steuerelement abzurufen, wo die aktuelle Maus befindet sich
private int GetLineNoVscroll(RichTextBox rtb) { //获得当前坐标信息 Point p = rtb.Location; int crntFirstIndex = rtb.GetCharIndexFromPosition(p); int crntFirstLine = rtb.GetLineFromCharIndex(crntFirstIndex); return crntFirstLine; }
Die zweite Methode besteht darin, schnell zu einer bestimmten Zeile im Richtextbox-Steuerelement zu wechseln
private void TrunRowsId(int iCodeRowsID, RichTextBox rtb) { try { rtb.SelectionStart = rtb.GetFirstCharIndexFromLine(iCodeRowsID); rtb.SelectionLength = 0; rtb.ScrollToCaret(); } catch { } }
Mit diesen beiden Methoden Wir können erreichen: Die Funktion zur Synchronisierung der Bildlaufleiste ist jetzt verfügbar.
Die Idee ist wie folgt: Wenn richtextbox1 scrollt, ermitteln Sie zunächst die der Maus entsprechende Zeilennummer von richtextbox1 über die GetLineNoVscroll-Methode. Dann
sucht die erhaltene Zeilennummer von richtexbox1 in richtextbox2 über die TrunRowsId-Methode, sodass richtextbox2 mit der Bildlaufleiste
im VScrollEreignis
Hinweis: Habe ich hier einen? , stellt einen bestimmten Versatz dar, der aus Layoutgründen (z. B. Steuerelementgröße usw.) dazu führen kann, dass die beiden Richtextboxen nicht synchron sind.Schreiben Sie im Allgemeinen einfach 0. Wenn die Lücke zu groß ist, Passen Sie es selbst an Ganzzahl
Wert.Zuletzt werden die beiden Bildlaufleisten synchron gescrollt
private void richTextBox1_VScroll(object sender, EventArgs e) { int crntLastLine= GetLineNoVscroll(richTextBox1, panel1)-?; TrunRowsId(crntLastLine, richTextBox2); }Zusammenfassung
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung, wie man synchrones Scrollen von zwei Richtextbox-Steuerelement-Bildlaufleisten in C# implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!