第一次打印正常,再次打印就重叠,请高手赐教,谢谢!

ljjd 2012-09-03 09:00:55
打印几遍就重叠几次,搞了很长时间要么搞懂,为什么会这样,请各位大侠帮忙看看。

代码:
private void MyPrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
XElement root = XElement.Load("BQ.xml");
int jds = root.Nodes().Count();
if (i < jds)
{
i++;
foreach (XElement e1 in root.Descendants("name" + i)) // remove Distinct()
{
string M;
M = e1.Value;
Graphics g = e.Graphics;
string str = M;
g.TranslateTransform(430, 320);
g.RotateTransform(180);
g.DrawString(str, new Font(new FontFamily("宋体"), 85), System.Drawing.Brushes.Black, 20, 0);
g.ResetTransform();
g.DrawString(str, new Font(new FontFamily("宋体"), 85), System.Drawing.Brushes.Black, 30, 475);
}
if (i == jds)
{
i = 0;
//e.HasMorePages = false;
return;
}
else
{
e.HasMorePages = true;
return;
}
}
else
{
i = 0;
e.HasMorePages = false;
return;
}
}
...全文
526 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2014-12-31
  • 打赏
  • 举报
回复
我做程序不会去动e.HasMorePages 属性 自己算需要打印多高,将页面高度设置为这个高度,for循环里指定好坐标
於黾 2014-12-31
  • 打赏
  • 举报
回复
i是个全局变量?? 打印之前先把它初始化为0
aday 2014-12-31
  • 打赏
  • 举报
回复
和楼主遇到同样的问题,开始打印的时候都正常,打几次之后就重叠了,所有的文字都打印在第一行,必须关闭程序重新进入才能正常,都搞不懂是什么原因。
ljjd 2012-09-10
  • 打赏
  • 举报
回复
不好意思 ,打字打错了,“按都少次"-->>>>按多少次打印按钮都能正常打印,但是除了打印按钮正常外,其他按钮都不能正常执行了,比如有button按钮取得textbox的值都取不了了,请各位给予指点。
ljjd 2012-09-10
  • 打赏
  • 举报
回复
执行一次打印是正常的,每一页都在相同的坐标位置打印不同的内容。之后在打印就有错误了 ,后来在endprint内加入了InitializeComponent();以后就正常了。按都少次都正常打印,但是除了打印按钮正常外,其他按钮都不能正常执行了,比如有button按钮取得textbox的值都取不了了,请各位给予指点。
zlc_168 2012-09-03
  • 打赏
  • 举报
回复
g.DrawString(str, new Font(new FontFamily("宋体"), 85), System.Drawing.Brushes.Black, 20, 0);
g.DrawString(str, new Font(new FontFamily("宋体"), 85), System.Drawing.Brushes.Black, 30, 475);
都是在相同的坐标上打印
bdmh 2012-09-03
  • 打赏
  • 举报
回复
看你的做坐标都是死的,可不每次都是打印在同一个位置吗
ljjd 2012-09-03
  • 打赏
  • 举报
回复
自己顶下,问题应当出在hasmorepage上,希望大侠们给个关注。谢谢

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧