IMPRIMIR TEXTBOX COMO APARECE NO FORMULARIO

PERCIFILHO 25/10/2012 09:06:43
#412757
Bom dia, amigos.

Já procurei por vários caminhos, mas talvez não tenha ido pelo caminho certo.

Estou a imprimir um pedido de compras. Neste pedido há um campo complemento, que pode ou não ser preenchido pelo usuário. Só que o campo é uma TextBox Multiline, portanto pode ter várias linhas e nem todas as linhas tem quebra para saltar para a próxima.
Então, preciso imprimir esse campo, mas quero que ele seja impresso da mesma maneira que aparece no formulário, com os mesmos alinhamentos.

Alguém me ajuda?

Até mais
EDULOCO 25/10/2012 09:52:41
#412767
Resumindo você quer que quando chegue no final ali ele já pule para a outra linha em vez de continuar na frente? Entendi certo?
PERCIFILHO 25/10/2012 10:00:33
#412769
Certo, tem que imprimir do jeitinho que aparece no formulário.

Repare na imagem do relatório. O alinhamento não está igual à TextBox.

Até mais.
PERCIFILHO 26/10/2012 09:47:30
#412854
Resolvido.

Encontrei um exemplo na NET, adaptei e consegui o que eu queria.
Se alguém se interessar, eis o código abaixo:

[txt-color=#007100][ô] declarar as variáveis[/txt-color]
Dim numChars As Integer
Dim numLines As Integer
Dim stringForPage As String
Dim PrintFont As Font
Dim StringToPrint As String
Dim strFormat As New StringFormat()
[txt-color=#007100][ô] sintaxe de RectangleF: (coluna, linha, largura, tamanho)
[ô] desenha um retângulo nas coordenadas especificadas, onde será impresso
[ô] o conteúdo da TextBox.[/txt-color]
Dim rectDraw As New RectangleF(165, 225, 510, 488)
[txt-color=#007100][ô] aqui, a fonte tem que ser a mesma da que está na TextBox,
[ô] caso contrário, o alinhamento das linhas não será o mesmo.[/txt-color]
PrintFont = New Font([Ô]Microsoft Sans Serif[Ô], 8, FontStyle.Regular)
Dim sizeMeasure As New SizeF(510, 488 - PrintFont.GetHeight(e.Graphics))
strFormat.Trimming = StringTrimming.Word
[txt-color=#007100][ô] TextBox que será impressa.[/txt-color]
StringToPrint = PedidosdeCompra.TxtComplemento.Text
[txt-color=#007100][ô] imprimindo o conteúdo da TextBox[/txt-color]
e.Graphics.MeasureString(StringToPrint, PrintFont, sizeMeasure, strFormat, numChars, numLines)
stringForPage = StringToPrint.Substring(0, numChars)
e.Graphics.DrawString(stringForPage, PrintFont, Brushes.Black, rectDraw, strFormat)

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