Laden...

RichTextBoxen synchron scrollen

Erstellt von rollerfreak2 vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.265 Views
rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 14 Jahren
RichTextBoxen synchron scrollen

Hallo zusammen,

ich hab dies hier im Forum gefunden und könnte das sehr gut gebrauchen. Leider funzt das nicht richtig.

Und zwar hab ich 2 richTextBox Controls nebeneinander. Beide enthalten den selben Text. Wenn ich nun die Scrollbar betätige und dann wieder los lasse, dann wird auch die Scrollbar der rechten Seite korrekt gesetzt, daher hat sie die selbe Position, leider stimmt aber der Inhalt nicht mehr, daher müsste die obere Zeile der linken Seite ja genau der rechten Seite entsprechen. Selbst wenn es ein offset von einer Zeile wäre, würde mich das nicht stören, allerdings weicht das immer vollkommen ab, daher stimmt die anzeige der scrollbar zwar aber der angezeigte Inhalt nicht mehr.

Bewegt man danach die Scrollbar der rechten richTextBox dann synchronisiert sich der Inhalt wieder.

Weiß einer von euch woran das liegt, bzw wie man das beheben kann?

Again what learned...

15 Beiträge seit 2006
vor 14 Jahren

Hallo rollerfreak,

mit den EM_GETSCROLLPOS und EM_SETSCROLLPOS kriegt man die Position ziemlich genau heraus. Damit sollte es auch keine Offset-Probleme mehr kriegen.


        #region consts
        const int EM_GETSCROLLPOS = 0x0400 + 221;
        const int EM_SETSCROLLPOS = 0x0400 + 222;
        #endregion

        #region winapi
        [System.Runtime.InteropServices.DllImport("user32.dll")]
        static extern int SendMessage(IntPtr hwndLock, Int32 wMsg, Int32 wParam, ref Point pt);
        #endregion

        #region properties
        internal Point ScrollPosition
        {
            get
            {
                Point pt = new Point();
                SendMessage(this.Handle, EM_GETSCROLLPOS, 0, ref pt);
                return pt;
            }
            set
            {
                SendMessage(this.Handle, EM_SETSCROLLPOS, 0, ref value);
            }
        }
        #endregion

Grüße
jb

rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 14 Jahren

Danke JBuechner,

das funktioniert ja bestens.

Again what learned...