Страницы: 1
RSS
Подсчет количества строк в TextBox
 
Всем доброго! На форме есть TextBox, в него планируется вносить данные построчно, и по условию если количество строк больше 8, уменьшать размер шрифта на шаг в меньшую сторону. Нашёл код для VB, крутил его, но так и не осилил, выдаёт ошибку на переменной hwnd. Для начала попытался по нажатию кнопки вывести в Label1 кол-во строк и символов - получилось! А вот количество линий - не выходит посчитать. Причем количество строк считает корректно, только при переводе на новую строку посредством Ctrl+Enter(поэтому посчитать надо количество линий, а не строк)
Код
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Const EM_GETLINECOUNT = 186
 
' Подсчет строк
Public Function Strok() As Long
Strok = UBound(Split(TextBox1.Text, vbNewLine)) + 1
End Function
 
' Подсчет символов
Public Function Simvols() As Long
Simvols = Len(TextBox1.Text)
End Function
 
Private Sub CommandButton1_Click()
Lin = SendMessage(TextBox1.hwnd, EM_GETLINECOUNT, 0&, 0&)
'Вывод происходит в Label:
Label1.Caption = "Кол-во строк:" & " " & Strok & " " & "Кол-во символов: " & Simvols & " " & "Кол-во линий: " & Lin
End Sub
 
Цитата
Дмитрий_DimAs написал: выдаёт ошибку на переменной hwnd
TextBox не является окном Windows и у него, соответственно, такое свойство отсутствует
Согласие есть продукт при полном непротивлении сторон
 
Код
Private Sub CommandButton1_Click()
With TextBox1
    .SetFocus
    Lin = .LineCount
End With
CommandButton1.SetFocus
' Label1.Caption = "Êîë-âî ñòðîê:" & " " & Strok & " " & "Êîë-âî ñèìâîëîâ: " & Simvols & " " & "Êîë-âî ëèíèé: " & Lin
Label1.Caption = "Кол-во строк:" & " " & Strok & " " & "Кол-во символов: " & Simvols & " " & "Кол-во линий: " & Lin
End Sub
Изменено: БМВ - 24.04.2019 22:02:19
По вопросам из тем форума, личку не читаю.
 
БМВ, Спасибо большое, то что нужно!
 
Дмитрий_DimAs, чтоб фокус не перекидывать, можно в Lin объявить как глобальную переменную и при изменении TextBox заносить .LineCount
По вопросам из тем форума, личку не читаю.
 
А мне в #3 Caption нравится )
 
Цитата
Юрий М написал:
А мне в #3 Caption нравится )
нравится? Бери, дарю! :-)
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх