我创建了一个面板,我在其中绘制了一些行,这些行通过Timer1
更新,间隔为200毫秒,Invalidate()
。关键是我想创建一条线条,或者通过更新坐标X,Y来保持创建的线条。
Invalidate()
会重新绘制面板,但只是使用新值更新Line,并删除其他行。怎么解决这个?我已经阅读了很多,但没有什么能解决这个问题。
private void RefreshTimer_Tick(object sender, EventArgs e)
{
RefreshTimer.Interval = 200;
Panel1.Invalidate();
}
private void Panel1_Paint(object sender, PaintEventArgs e)
{
Graphics gi = e.Graphics;
gi.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
angle = Valor3;//come from a microcontroller
Pen pen2 = new Pen(Color.Red, 2f);
int r = Uval;//come from a microcontroller
int X1 = RadarPanel.Size.Width/2;
int Y1 = RadarPanel.Size.Height/2;
Point pStart = new Point(X1, Y1);
int X2 = (int)(X1 + r * Math.Cos((double)angle * Math.PI/180));
int Y2 = (int)(Y1 + r * Math.Sin((double)angle * Math.PI/180));
Point pEnd = new Point(X2, Y2);
gi.DrawLine(pen2, pStart, pEnd);
gi.DrawEllipse(new Pen(Color.Green, 2f), 0, 0, Panel1.Size.Width, Panel1.Size.Height);
}
谢谢
RGDS
何