Zeilen und Spaltenposition des Cursors bei RichTextFeld ermitteln und anzeigen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von rogerberglen.

    Zeilen und Spaltenposition des Cursors bei RichTextFeld ermitteln und anzeigen

    Ich habe zwar schon gesucht und nicht so recht was gefunden. Ich habe auch schon in meinem .Net-CodeBook nachgeschaut. Da ist zwar ein Code abgedruckt. Leider funktioniert dieser aber offensichtlich so nicht mit VB2008!
    Die Anzeige soll sich mit jedem Tastendruck aktualisieren.
    Hat da wer ein Beispiel?
    Hi
    Versuchs mal so:

    VB.NET-Quellcode

    1. Private Sub RichTextBox1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles RichTextBox1.SelectionChanged
    2. If RichTextBox1.Text.Substring(0, RichTextBox1.SelectionStart).Contains(vbLf) Then
    3. Label1.Text = "Spalte: " & RichTextBox1.SelectionStart - RichTextBox1.Text.Substring(0, RichTextBox1.SelectionStart).LastIndexOf(vbLf) - 1
    4. Else
    5. Label1.Text = "Spalte: " & RichTextBox1.SelectionStart
    6. End If
    7. Label2.Text = "Zeile: " & RichTextBox1.Text.Substring(0, RichTextBox1.SelectionStart).Split(vbLf).Length
    8. End Sub


    Is auch für TextBox verwendbar, aber da gibts kein SelectionChanged. Übrigens: Wenn dir das mit dem SelectionChanged nicht passt, kannst du auch einfach unter KeyPressed bzw. KeyDown einfügen...

    Gruß
    ~blaze~
    hallo rogerberglen,

    mit ein bischen suche im forum oder wenn du dir die eigenschaften der rtb angesehen hättest, hättest du selbst drauf kommen können.
    aber was solls - hab heute wieder meinen netten tag.
    dieser code zeigt die aktuelle position (x und y) des cursors an, sobald du einen neuen text eingibst.
    ich hoffe du kannst das auf deine bedürfnisse selbst anpassen.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
    3. Dim pos_x As Integer = Me.RichTextBox1.SelectionStart - Me.RichTextBox1.GetFirstCharIndexOfCurrentLine
    4. Dim pos_y As Integer = Me.RichTextBox1.GetLineFromCharIndex(Me.RichTextBox1.SelectionStart)
    5. Me.Text = "X = " & pos_x.ToString & " - Y = " & pos_y.ToString
    6. End Sub
    7. End Class

    gruss

    mikeb69