在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来进行坐标移动?敬请指点,谢谢!