求問,我剛學C#沒有多久,有一個問題,就是為什么我點擊PathPaint按鈕之后,在它畫的程序中,將滑鼠移開,然后之前畫的東西就沒了,就是淺藍色那部分本來是從(0,0)開始畫的

public void PathPaint()
{
int Number = Convert.ToInt32(AgvName.Text);
Graphics g = this.CreateGraphics();
Pen pen = new Pen(Brushes.Aqua);
Pen penpath = new Pen(Brushes.Green);
for (int i = AGVs[Number].Theway.Count() - 1; i >= 1; --i)
{
g.DrawLine(penpath, 35 + 30 * AGVs[Number].Theway[i].y, 35 + 30 * AGVs[Number].Theway[i].x, 35 + 30 * AGVs[Number].Theway[i - 1].y, 35 + 30 * AGVs[Number].Theway[i - 1].x);
}
for (int i = AGVs[Number].Theway.Count() - 1; i >= 1; --i)
{
g.DrawLine(pen, 35 + 30 * AGVs[Number].Theway[i].y, 35 + 30 * AGVs[Number].Theway[i].x, 35 + 30 * AGVs[Number].Theway[i - 1].y, 35 + 30 * AGVs[Number].Theway[i - 1].x);
// DateTime dt1 = DateTime.Now;
//while ((DateTime.Now - dt1).TotalMilliseconds< 3000) Application.DoEvents();
Thread.Sleep(1000);
}
}
private void MapPrint_Click(object sender, EventArgs e)
{
int Number = Convert.ToInt32(AgvName.Text);
Thread thread = new Thread(PathPaint);
thread.Start();
}
uj5u.com熱心網友回復:
不要用CreateGraphics(),而是提供一個Paint程序讓系統呼叫:public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Paint += Paint程序;
}
private void Paint程序(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
// ...
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/69556.html
標籤:C#
下一篇:單項鏈表節點的插入
