方法一、利用背景覆盖
SolidBrush sb = null;
Rectangle r;
private void GraphicsDeviceInterfacePlusForm_Load(object sender, EventArgs e)
{
g = this.CreateGraphics();
r = new Rectangle(0, 0, 10, 10);
g.FillRectangle(Brushes.Blue, r);
sb = new SolidBrush(this.BackColor);
}
private void timer1_Tick(object sender, EventArgs e)
{
g.FillRectangle(sb, r);
r.Offset(0, 10);
g.FillRectangle(Brushes.Blue, r);
}
方法二、利用重绘
private void timer1_Tick(object sender, EventArgs e)
{
this.Invalidate();
}
Rectangle rs = new Rectangle(0, 0, 10, 10);
protected override void OnPaint(PaintEventArgs e)
{
g = e.Graphics;
g.FillRectangle(Brushes.Blue, rs);
rs.Offset(0, 10);
}
还有其他方法 利用临时生成image清除重绘,利用控件改变坐标等等。
--------------------- 本文来自 andycode 的优快云 博客 ,全文地址请点击:https://blog.youkuaiyun.com/andycode/article/details/7190289?utm_source=copy
本文介绍了使用C#进行图形绘制的两种方法:一种是通过创建SolidBrush和Graphics对象,利用FillRectangle方法绘制并更新矩形区域;另一种是通过Invalidate方法触发重绘,结合OnPaint事件实现动态图形更新。此外,还提到了其他清除重绘的方法,如利用临时生成的image和改变控件坐标。
766





