日期:2014-05-20  浏览次数:20702 次

TextRenderer.DrawText的奇怪问题,寻求解决方法!
在Paint事件中,我绘制文本。说明如下:
private   void   Panel2_Paint(object   sender,   PaintEventArgs   e)
{
e.Graphics.TranslateTransform(Panel2.AutoScrollPosition.X,   Panel2.AutoScrollPosition.Y);
TextRenderer.DrawText   .........
}
如果采用这种方式绘制文本的话,当来回拖动滚动条,这个Panel2里面的文本没有能够得到正确的刷新。多拖动几次滚动条,整个Panel2就变得很花乱。而且,如果将滚动条初始的位置设置到一个不为0的一个初始值,那么文本绘出的位置也不对了。好像是不是e.Graphics.TranslateTransform这句语句出了问题?

但是如果我采用Graphics.DrawString则没有上面的问题,所有都是正常的,如:
private   void   Panel2_Paint(object   sender,   PaintEventArgs   e)
{
e.Graphics.TranslateTransform(Panel2.AutoScrollPosition.X,   Panel2.AutoScrollPosition.Y);
e.Graphics.DrawString   .........
}
这样就正常,这是怎么回事?难道采用TextRenderer.DrawText方案,就不能用Graphics.TranslateTransform来进行坐标移动?敬请指点,谢谢!

------解决方案--------------------
lvjianxin12345() 是变态!