打印预览时,用DrawString没有输出文字,怪了
见鬼了,在有些情况下,使用DrawString输出时,在打印预览的画布里显示是空的,但打印出来,该页却是有东西的
StringFormat sfBody = new StringFormat(StringFormatFlags.LineLimit);
g.DrawString(m_Body.Substring(nCharIndex), ftBody, sbBrush,
new RectangleF(pageLeft, pageTop, pageRight - pageLeft, pageBottom - pageTop), sfBody);
问题点数:88、回复次数:8Top
1 楼hjiaming(无边无际无求)回复于 2006-03-02 15:06:12 得分 0
没人碰到过吗?我发现只有在m_Body这个字符串长度超过一定程序之后才会出现该问题Top
2 楼wxdl1981(沉默之狼)回复于 2006-03-02 15:36:11 得分 0
关键还要看你的代码放在什么地方了.
StringFormat sfBody = new StringFormat(StringFormatFlags.LineLimit);
g.DrawString(m_Body.Substring(nCharIndex), ftBody, sbBrush,
new RectangleF(pageLeft, pageTop, pageRight - pageLeft, pageBottom - pageTop), sfBody);
放在待打印窗体的Paint事件中, 才能在程序上看到.
否则,只能打印才能看到Top
3 楼diandian82(点点(nothing))回复于 2006-03-02 16:04:08 得分 0
必须要考虑到重画窗体的情况!Top
4 楼hjiaming(无边无际无求)回复于 2006-03-02 16:11:04 得分 0
上面的代码在如下函数中
public void Draw(object sender, System.Drawing.Printing.PrintPageEventArgs e)
然后由打印事件委托调用
printDocument.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(Draw);
Top
5 楼hjiaming(无边无际无求)回复于 2006-03-02 16:14:44 得分 0
奇怪的地方就在于大部分情况下DrawString输出都是正常的,只有m_Body这个字符串长度超过一定程序之后才会出现,出现空白页时,其中使用DrawLine的输出均正常,就是DrawString输出的无显示。。。。怪
Top
6 楼hjiaming(无边无际无求)回复于 2006-03-02 20:07:36 得分 0
顶上,期待解决Top
7 楼raulredondo()回复于 2006-03-03 16:28:34 得分 0
StringFormat sfBody = new StringFormat(StringFormatFlags.LineLimit);
是这个搞怪吧,去掉看看Top
8 楼hjiaming(无边无际无求)回复于 2006-03-03 20:47:47 得分 0
StringFormatFlags.LineLimit只是保证按行进行布局,去掉后问题依然如故Top




