16. juli 2010 - 14:01Der er
2 kommentarer og 1 løsning
Stringbuilder kan ikke læse resterende linier
Hvis jeg har en textbox udfyldt som eksemplet herunder.
AAA bbb ccc d
EEE fff
Så kan en stringbuilder ikke læse alle linier efter linien med et enkelt "d" efterfulgt af CR+LF. Den er simpelthen tom. Linieantallet hentes korrekt. Problem: <et tegn><efterfulgt af CR+LF>
Herunder er min kode:
Dim LineCount As Integer = SendMessage(Ctrl.Handle, EM_GETLINECOUNT, 0, 0) Dim Buffer As StringBuilder For LineIndex As Integer = 0 To LineCount - 1 ' Read text from line X into buffer Buffer = New StringBuilder(256) SendMessage(Ctrl.Handle, EM_GETLINE, LineIndex, Buffer)
' Print text from buffer Grphcs.DrawString(Buffer.ToString(), Ctrl.Font, Brush, X, _Y, StrF) Next
Hi jeg ku ikke se din API kald og variablerne, derfor kunne ikke genskabe problemet. Men se om nedenstående virker.
Private Const EM_GETLINECOUNT As Integer = &HBA Private Const EM_GETLINE As Integer = &HC4 Private Const EM_LINELENGTH As Integer = &HC1 Private Const EM_LINEINDEX As Integer = &HBB
Private Declare Function SendMessageINT Lib "user32.dll" _ Alias "SendMessageA" (ByVal hWnd As IntPtr, _ ByVal wMsg As Integer, ByVal wParam As Integer, _ ByVal lParam As IntPtr) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim LineCount As Integer = SendMessageINT(TextBox1.Handle, EM_GETLINECOUNT, 0, IntPtr.Zero) Dim counter As Integer = 0 Dim LineIndex As Integer = 0 Dim lineLength As Integer Dim curLine As String = "" Dim stringPTR As IntPtr
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.