Ich habe eine RichTextBox und ich muss die position der vertikalen Bildlaufleiste.
Gibt es eine Möglichkeit, dies zu tun, ohne Pinvoke? Wenn nicht, was ist ein Weg, dies zu tun MIT Pinvoke?
Muss ich einen integer-Wert zurückgeben.
Danke für die Hilfe!
Ich kenne keinen Weg, dies zu tun, ohne PInvoke. Sie können PInvoke aufrufen GetScrollPos.
Hier ist, wie können Sie es versuchen.
Schritt 1: Erstellen Sie eine benutzerdefinierte RichTextBox-Steuerelement durch die Erweiterung der standard RichTextBox.
Diese fügen Sie zwei Eigenschaften, die zu einem standard RichTextBox: HScrollPos und VScrollPos. Diese Eigenschaften können Sie gehen und stellen Sie die horizontalen und vertikalen Scrollbalken-position in Ihrer Kontrolle.
Schritt 2: Erstellen Sie ein test-Formular und versuchen aus Ihrer Kontrolle.
Erstellen Sie eine Winform in das gleiche Projekt wie das benutzerdefinierte Steuerelement. Tropfen Sie das benutzerdefinierte Steuerelement in das test-Formular und fügen Sie eine Schaltfläche auf das Formular. In die form Klicken-Ereignis, fügen Sie folgenden code um Ihre benutzerdefinierten Steuerelements vertikale scroll-position.
Ein paar Dinge zu beachten:
Wenn Ihr Steuerelement nicht aktuell
die Anzeige einer vertikalen Bildlaufleiste, die
Aufruf HScrollPos Absturz Ihr
Programm. Es gibt ein paar offensichtlich
Möglichkeiten, um dieses (überprüfen Sie, dass die
Bildlaufleiste wird angezeigt, bevor
die überprüfung der Eigenschaft, zu machen, oder die
vertikale Bildlaufleiste immer sichtbar, etc.).
Je nachdem, wie die Kontrolle (und
möglicherweise-form) - Größe (nicht zu
erwähnen Sie änderungen in der text-Inhalt
von der Steuerung), die Einstellung der
VScrollPos kann zum Absturz Ihres Programms oder
nicht wieder in die position, die Sie
bei der VScrollPos Wert war
gespeichert.
Habe ich nie benutzt diesen code. Ich
dachte deine Frage war
interessant und hab ein wenig
Forschung zu kommen mit meiner Antwort.