Heim  >  Artikel  >  Backend-Entwicklung  >  C# So implementieren Sie eine einfache Methode zum synchronen Scrollen zweier Richtextbox-Steuerelement-Bildlaufleisten

C# So implementieren Sie eine einfache Methode zum synchronen Scrollen zweier Richtextbox-Steuerelement-Bildlaufleisten

黄舟
黄舟Original
2017-05-28 10:08:181705Durchsuche

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.


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 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn