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
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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.