devxlogo

Determine the current line in a multiline TextBox control

Determine the current line in a multiline TextBox control

You can determine the line where the caret is in a multiline TextBox control by sending the control a EM_LINEFROMCHAR message, as follows:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _    hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _    lParam As Any) As LongConst EM_LINEFROMCHAR = &HC9Function GetTextBoxCurrentLine(TB As TextBox) As Long   GetTextBoxCurrentLine = SendMessage(TB.hWnd, EM_LINEFROMCHAR, -1, _       ByVal 0&) + 1End Function

For example:

Print "Caret is on line " & GetTextBoxCurrentLine(Text1.hWnd)

devx-admin

Share the Post: