How can I display the line position in a TextBox on the status bar?

4.1k Views Asked by At

I have added a StatusStrip control and placed a StatusLabel inside of it. But now I want to know how to connect it to my TextBox to show the line number and position of the cursor, like: "Line 2, Row 6".

Thank you

1

There are 1 best solutions below

1
On BEST ANSWER
  1. Get the index of the caret in the TextBox:

    C#

    int caretIndex = textBox.SelectionStart;
    

    VB.NET

    Dim caretIndex As Integer = textBox.SelectionStart
    
  2. Get the line number from the caret index:

    C#

    int lineNumber = textBox.GetLineFromCharIndex(caretIndex);
    

    VB.NET

    Dim lineNumber As Integer = textBox.GetLineFromCharIndex(caretIndex)
    
  3. Get the character index in the current line:

    C#

    Point characterXY = textBox.GetPositionFromCharIndex(caretIndex);
    int characterIndex = textBox.GetCharIndexFromPosition(characterXY);
    

    VB.NET

    Dim characterXY As Point = textBox.GetPositionFromCharIndex(caretIndex)
    Dim characterIndex As Integer = textBox.GetCharIndexFromPosition(characterXY)
    

I guess you can continue from here ...