textbox设置为多行,输入文字后,一段很长的文字在textbox里是可以自动换行。但是打印时textbox里面会自动换行的地方在纸张上却不会自动换行。结果导致一段很长的文字无法打印完,纸张上仅能打印出部分文本,出界的文字全部丢失。
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
string str="";
int y=textBox1.TextLength/5;
for(int i=0;i<=textBox1.TextLength/5;i++)//5个字符就换行
{
if(i<y)
{
str+=textBox1.Text.Substring(i*5,5)+Environment.NewLine; //从第i*5个开始,截取5个字符串
}
else
{
str+=textBox1.Text.Substring(i*5);
}
}
e.Graphics.DrawString(str, new Font("Arial",12,FontStyle.Regular),Brushes.Black,80,80);
}
private void btnPrint_Click(object sender, System.EventArgs e) //打印按钮单击事件
{
printDocument1.PrintPage+=new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
printDocument1.Print();
}
注:中英文都是一个字符代表一个长度。