IMPRESSAO DE TEXTBOX WORDWRAP

PERCIFILHO 16/03/2012 12:50:44
#397315
Boa tarde, amigos.

Preciso saber se tem como eu conseguir imprimir o conteúdo de uma TextBox Multiline da mesma maneira que ela aparece no formulário, ou seja, o texto é digitado na TextBox, sem teclar ENTER no final de cada linha, e ao imprimir as linhas são impressas da mesma maneira como se vê na TextBox, respeitando a propriedade WordWrap.

Se alguém puder me ajudar, agradeço.

Até mais.
PERCIFILHO 20/03/2012 14:00:00
#397667
Consegui!!! Para quem quiser, eis o código:

Dim LineCount As Integer = SendMessageINT(TextBox.Handle, EM_GETLINECOUNT, 0, IntPtr.Zero)
Dim counter As Integer = 0
Dim LineIndex As Integer = 0
Dim LineLength As Integer = 0
Dim curLine As String= [Ô][Ô]
Dim stringPTR As IntPtr
Dim ultimalinha As Integer = 50

For counter = 0 To LineCount - 1
[ô]get index for the line you want to retrieve
LineIndex = SendMessageINT(TextBox.Handle, EM_LINEINDEX, counter, IntPtr.Zero)
[ô] get line length
LineLength = SendMessageINT(TextBox.Handle, EM_LINELENGTH, LineIndex, IntPtr.Zero)
[ô] Create the buffer
curLine = New String([Ô]0[Ô]c, LineLength + 2)
Mid(curLine, 1, 1) = Chr(LineLength And &HFF)
Mid(curLine, 2, 1) = Chr(LineLength \ &H100)
[ô] get the pointer for a buffer
stringPTR = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(curLine)
[ô]fill the pointer with the current line
SendMessageINT(TextBox.Handle, EM_GETLINE, counter, stringPTR)
[ô]read the line
curLine = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(stringPTR)
curLine = curLine.Substring(0, LineLength)
[ô]clear out the space
System.Runtime.InteropServices.Marshal.FreeHGlobal(stringPTR)
stringPTR = IntPtr.Zero
e.Graphics.DrawString(curLine, New Font([Ô]Microsoft Sans Serif[Ô], 9, FontStyle.Bold), Brushes.Black, 30, ultimalinha)
ultimalinha = ultimalinha + 25
Next

Até mais.
Tópico encerrado , respostas não são mais permitidas