Quebra de linha na DrawString c#

Ola!
Estou desenvolvendo um projeto em c# para impressão. E uso drawstring(Texto):

Quando eu mando imprimir, se eu escrever muitas palavras, ele nao na outra linha,
Como eu faco pra te as quebras de linha quando acabar o espaco?

Difícil dizer sem ver seu código. Mas acredito que você terá de fazer a quebra manualmente (com substring, por exemplo). Conte quantos caracteres cabe em cada linha e quebre seu texto nessa quantidade de caracteres.

Recomendo usar um fonte monoespaçada (cada caractere ocupa o mesmo espaço, como Courier New ou Lucida Console) pra facilitar.

Abraço.

2 curtidas

este é meu código

G.DrawString(" Observação :  "+txtObs.Text, Fonte, Brushes.Red, 20, 300);

ele escreve na linha a observação que esta no meu textbox, mas se eu escrever muita coisa ele não passa para outra linha, fica tudo na linha 300;

Baseado no que eu disse, vamos supor que cabem 40 caracteres por linha. Você pode fazer algo como:

string texto = " Observação :  "+txtObs.Text;
int i;
int tam = teste.Length;
for (i = 0; i < tam; i+= 40){
  //Console.WriteLine(teste.Substring(i, Math.Min(40, tam - i))); // só um teste
  G.DrawString(texto.SubString(i, Math.Min(40, tam - i)), Fonte, Brushes.Red, 20, 300 + (i % 40 * 20));
}

Obs: C# não é meu forte, pode ser necessário modificar a sintaxe.

Abraço.