Dieser Artikel stellt Ihnen hauptsächlich eine einfache Methode in C# vor, um das synchrone Scrollen von zwei Richtextbox-Steuerelement-Bildlaufleisten zu realisieren. Die Einführung im Artikel ist sehr detailliert und hat einen gewissen Referenz- und Lernwert für alle, die sie benötigen siehe unten.
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 das Ziel mit der herkömmlichen Methode der Überlastung oder Anpassung von 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
Die erste Methode besteht darin, die Zeilennummer im Richtextbox-Steuerelement abzurufen, in dem sich die aktuelle Maus befindet
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 Mit diesen Methoden können wir die Funktion der Bildlaufleistensynchronisierung realisieren.
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 Zeilennummer von richtexbox1, die in richtextbox2 über die TrunRowsId-Methode erhalten wurde, sodass richtextbox2 mit der Bildlaufleiste von richtexbox1
im VScroll-Ereignis von richTextBox1 scrollt den folgenden Code. Hinweis: Ich habe einen? , stellt einen bestimmten Versatz dar. Aus Layoutgründen (z. B. Steuerelementgröße usw.) sind die beiden Richtextboxen möglicherweise nicht synchron.
Schreiben Sie im Allgemeinen einfach 0. Wenn der Unterschied zu groß ist, passen Sie den Wert an selbst.
private void richTextBox1_VScroll(object sender, EventArgs e) { int crntLastLine= GetLineNoVscroll(richTextBox1, panel1)-?; TrunRowsId(crntLastLine, richTextBox2); }
Zusammenfassung
Das obige ist der detaillierte Inhalt vonC# So implementieren Sie eine einfache Methode zum synchronen Scrollen zweier Richtextbox-Steuerelement-Bildlaufleisten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!