Jag har en listbox(list2) en textbox(txtSv) Jag kom på en lösning, kanske inte så snygg men den fungerar:SelLength problem
Texten i txtSv kan se ut så här:
<code>
MultLang_1="Bli Medlem"
MultLang_2="Att bli medlem är väldigt enkelt, nu när Du har hittat hit till våran hemsida."
MultLang_3="Följ bara länken här nedanför"
</code> I listboxen 1,2,3 osv.
Jag har hittat en snutt som halvvägs gör vad jag vill nämmeligen, när
jag klicka på t ex 2 då ville jag ha hela den meningen markerad.
Den kod jag jobbar med ser ut så här:
<code>
Info.Caption = ""
Dim s As String, l As Long, j As Integer
j = List2.ListIndex ' + 1
s = "MultLang_" & j + 1
l = InStr(txtSv.text, s)
If l = 0 Then ' 1st spot is string is 1. 0 means "not found"
MsgBox "The text was not found."
Else
txtSv.SetFocus
txtSv.SelStart = l - 1 ' 1st spot for selected text is numbered 0
' txtSv.SelLength = Len(Info.Caption) - 1'detta är fel, texten finns inte i info
End If
</code>
Jag behöver alltså ha tag på längden, hur bör jag göra det?Sv: SelLength problem
<code>
Info.Caption = ""
Dim s As String, l As Long, j As Long, M As String
j = List2.ListIndex ' + 1
texten = Split(txtSv.text, vbCrLf)
' Label1.Caption = Replace("Visa inlaggd multilang nr: ", vbTab, "") & j + 1
Info.Caption = Replace(texten(j), vbTab, "")
s = "MultLang_" & j + 1
l = InStr(txtSv.text, s)
If l = 0 Then ' 1st spot is string is 1. 0 means "not found"
MsgBox "The text was not found."
Else
txtSv.SetFocus
txtSv.SelStart = l - 1 ' 1st spot for selected text is numbered 0
txtSv.SelLength = Len(Info.Caption)
End If
</code>
Vid insättningen så gör jag dessutom en replace på vbCrlf så jag tar ut <BR> i stället.
Troligen så gör jag det tillbaka igen när det skall presenteras.