Come ricavare il numero di linee contenute in una TextBox
Questo metodo è lineare: usa SendMessage per ricavare il numero di linee in una TextBox. In questo metodo una linea è definita
come nuova linea dopo un word-wrap; è indipendente dal numero di ritorni a capo nel testo.
Inserire la funzione API seguente nell'area generale delle dichiarazioni di un modulo
bas:
Option Explicit
Public Declare Function SendMessageLong Lib _
"user32" Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Public Const EM_GETLINECOUNT = &HBA
Codice da inserire in un Form:
Sub Text1_Change()
Dim lineCount as Long
On Local Error Resume Next
'riceve e mostra il numero di linee contenute nel controllo TextBox
lineCount = SendMessageLong(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
Label1 = Format$(lineCount, "##,###")
End Sub
La TextBox passata all'API SendMessage deve avere la proprietà multiline settata su True a design time.
EM_GETLINECOUNT non fa passare parametri addizionali all'API nella variabili wParam e lParam.
Queste devono essere 0.
Testato su: Windows 98, Windows Me, Windows 2000 Professional