Zeilen- / Spalten Position in TextBox ermitteln

Zeilen- / Spalten Position in TextBox ermitteln

Heute mal ein kleiner Quick Tip, wie ihr die Zeilen und Spaltenposition in einer TextBox ermitteln könnt.

Für den Zeilenindex gibt es die Hilfsmethode GetLineIndexFromCharacterIndex.
Diese verlangt nach einer beliebigen Zeichenposition und berechnet den null basierten Zeilenindex dazu.

In meinen Beispiel berechne ich die aktuelle Zeile der Auswahl:

int lineIndex = tbxText.GetLineIndexFromCharacterIndex(tbxText.SelectionStart) + 1;

Die Spaltenposition der Auswahl könnt ihr wie folgt berechnen:

int columnIndex = tbxText.SelectionStart - tbxText.GetCharacterIndexFromLineIndex(lineIndex - 1)

Dabei ermittel ich zuerst den null basierten Index des ersten Zeichens, für eine bestimmte Zeile. In meinen Fall nehme den bereits berechnete Zeilenindex der Auswahl.
Da dieser null basiert ist und ich diesen bereits mit eins addiert habe, ziehe ich an dieser Stelle wieder eins ab.
Nachdem ich nun also die Zeichenposition des ersten Zeichens für die aktuelle Zeile habe, muss ich diesen Wert nur noch von der Startposition der Auswahl subtrahieren.
Um einen Kommentar zu hinterlassen, ist eine Anmeldung erforderlich.