Frage

Für meine C # RichTextBox, möchte ich die gleiche Sache programmatisch tun, wie der Pfeil nach oben an der Spitze einer vertikalen Bildlaufleiste klicken, die die RichTextBox um eine Zeile angezeigt werden oben bewegt. Was ist der Code für das? Dank!

War es hilfreich?

Lösung

Hier ist, was ich tun:

using System.Runtime.InteropServices;

[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, uint wMsg, 
                               UIntPtr wParam, IntPtr lParam);

rufen Sie dann:

SendMessage(myRichTextBox.Handle, (uint)0x00B6, (UIntPtr)0, (IntPtr)(-1));

Es scheint gut zu funktionieren - Sie könnten die Dinge ein wenig zwicken müssen, obwohl

.

Ich hoffe, das hilft.

Andere Tipps

Für die Zukunft ist die EM_LINESCROLL Nachricht, was Sie zu jeder mehrzeiligen Eingabesteuerung senden, um die Bildlaufposition zu setzen. Sie können vertikal oder horizontal scrollen. Siehe MSDN .

Sie können auch die Rich-Edit-Selection-Methode verwenden, in dem Sie den Zeichenindex festgelegt (die Sie mit EM_LINEINDEX bekommen kann), dann rufen RichEdit.ScrollToCaret dh:

RichEdit.SelectionStart = SendMessage(RichEdit.Handle, EM_LINEINDEX, ScrollTo, 0);
RichEdit.ScrollToCaret();

Dies wird diese Linie an die Spitze des Eingabefeldes blättern.

window.scrollBy (0,20);

Dies wird das Fenster scrollen. 20 ist ein Richtwert ich in der Vergangenheit verwendet habe, die typischerweise eine Zeile gleich ... aber natürlich Schriftgröße auswirken kann, wie weit eine Zeile wirklich ist.

Wenn Sie auf die Navigationssteuerung für die Rich-Text-Box bekommen können, sollen Sie in der Lage sein, seine Eigenschaft Smallchange zu erhalten und zu verwenden, um den Text zu scrollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top