Library code snippets
Counting lines in a multi-line textbox
Often, you may need to know how many lines of text there are in a multi-line
textbox. While Visual Basic makes it easy to determine how many paragraphs the
textbox contains, using code like so:Private Sub Command1_Click()
Dim myParas As Variant
myParas = Split(Text1, vbNewLine)
MsgBox UBound(myParas) + 1
End Sub
This code, as you can see, only parses out hard carriage returns; whereas you
want to know how many lines of text the control contains.
To accomplish this task, you'll need to resort to the SendMessageAsLong() API
function. This function conforms to the following syntax:Private Declare Function SendMessageAsLong Lib "user32" _
Alias "SendMessageA" (ByVal hWnd As Long,
ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
To obtain the number of lines, you pass in the EM_GETLINECOUNT constant in the
wMsg parameter. Declare this constant like this:Const EM_GETLINECOUNT = 186
Finally, to use the function, pass in the handle to the textbox from which you
want to retrieve the line count, as well as the wMsg we mentioned earlier.
Example code might look like so:
Private Sub Command2_Click()
Dim lCount As Long
lCount = SendMessageAsLong(Text1.hWnd, EM_GETLINECOUNT, 0, 0)
MsgBox lCount
End Sub
Related articles
Related discussion
-
Run-time error '91'
by converter2009 (1 replies)
-
VB6 Runtime error 381 subsript out of range Error
by Uncle (2 replies)
-
passing and reading parameters from using Shell
by jigartoliya (0 replies)
-
Convert C++ code to VB6
by mawcot (4 replies)
-
listbox scrollbar
by Dennijr (10 replies)
Related podcasts
-
Christian Beauclair
14 mai 2008 (�mission #0074) ::.Christian Beauclair: Stratégies de migration VB6 vers .NET Nous discutons avec Christian Beauclair des stratégies de migration VB6 vers .NET. Entre autres, nous discutons comment utiliser le "VB 6 Code Advisor" et le "Interop Forms Toolkit" pour ajouter la puiss...
Comments
Leave a comment
Sign in or Join us (it's free).