2009-03-13 9 views
0

Ich habe ein mehrzeiliges Textfeld, das normalerweise sehr lange Zeichenfolgen anzeigt (z. B. Lizenzvereinbarungen), und eine Anforderung um den Bildschirm besteht darin, dass der Benutzer " Seiten "durch den Text über die vertikale Bildlaufleiste (nicht auf die Pfeile oder das Bildlauffeld klicken, sondern über oder unter dem Bildlauffeld klicken), auf der letzten" Seite "muss die erste Zeile die letzte Zeile von der vorherigen Seite und der Text sein wird mit Leerzeilen aufgefüllt, um dies zu ermöglichen.Abrufen der Anzahl angezeigter Zeilen im mehrzeiligen Textfeld im Compact Framework

Ich weiß, ich kann die Größe der Zeichenfolge und die Anzahl der Zeilen im Textfeld abrufen, aber ist es möglich, die Anzahl der Zeilen angezeigt in der Textbox auf einmal, so dass ich berechnen kann, wie viel die Text muss aufgefüllt werden? Wenn ich auf die Liste messages schaue, die ich über P/Invoke senden kann, sehe ich keine, um die Anzahl der angezeigten Zeilen anzufordern.

Antwort

2

Sie können die maximale Anzahl von Zeilen gleichzeitig anzeigen, indem Sie die Schrifthöhe berechnen und die Textboxhöhe damit teilen.

Nur eine Idee ... Nicht sicher, ob es richtig herauskommen wird, aber Sie könnten einige Tests machen und sehen, ob es übereinstimmt.

die Schrifthöhe zu erhalten:

public SizeF MeasureString( string text, Font font )

+0

Dies ist ein guter Anfang. Es gibt anscheinend ein wenig Polsterung oben und unten, so dass die Mathematik nicht genau ist. Ich muss mit Textboxen unterschiedlicher Größe versuchen, um zu sehen, wie es ausgeht. – bjanaszek

+0

Froh ich könnte helfen :) – Stormenet

Verwandte Themen