Hej, Kolla i API Guiden SendMessage där finns lösningen /Räkna rader Option ExplicitTextbox: Hur många rader? Ta text från ex: rad 5?
Hur gör jag för att få fram hur många rader text en textbox innehåller?
Och hur gör jag för att tex lägga texten på Rad 5 i en variabel?
Tacksam för svar. :)Sv: Textbox: Hur många rader? Ta text från ex: rad 5?
http://www.mentalis.org/agnet/apiguide.shtmlSv: Textbox: Hur många rader? Ta text från ex: rad 5?
<code>
Private function countLine() as integer
countLine = UBound(Split(Text1.Text, vbCr)) + 1
end function
</code>
/Infoga text
<code>
Private sub ReplaceLine(line as integer, sText as string)
Dim aStringLineSplit() As String
Dim i As Integer
aStringLineSplit = Split(Text1.Text, vbCr)
For i = 0 To UBound(aStringLineSplit)
aStringLineSplit(i) = Replace(aStringLineSplit(i), vbCr, "")
aStringLineSplit(i) = Replace(aStringLineSplit(i), vbLf, "")
Next i
If UBound(aStringLineSplit) < line Then ReDim Preserve aStringLineSplit(line)
aStringLineSplit(line) = sText
Text1.Text = Join(aStringLineSplit, vbCrLf)
End Sub
</code>Sv: Textbox: Hur många rader? Ta text från ex: rad 5?
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Const EM_GETLINECOUNT = &HBA
Const EM_GETLINE = &HC4
'Detta funkar på RichTextBox och TextBox.
Private Sub Command1_Click() 'antal rader
Dim lngCount As Long
'Hämta antal rader i Text1
lngCount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)
MsgBox lngCount & " rader i TextBoxen"
End Sub
Private Sub Command2_Click() 'hämta rad nr
Dim buffer As String, radNr As Long, ret As Long
buffer = String$(100, 32) 'lägger upp en buffer på 100 space
radNr = 5 'Obs radNr börjar på 0
On Error Resume Next
ret = SendMessage(Text1.hwnd, EM_GETLINE, radNr - 1, ByVal buffer)
'ret innehåller antal tecken i raden
buffer = Left$(buffer, ret)
MsgBox buffer & String$(2, vbCrLf) & ret & " tecken i raden"
End Sub