作者lsmptt (虛心向學)
看板C_Sharp
標題[問題] GDI繪圖問題
時間Mon Dec 8 11:19:31 2008
關於繪圖問題,我想要在繪圖的過程中看見我所編輯的形狀,
例如:畫一條直線,滑鼠按下去時開始編輯,在滑鼠移動的過程中,
我可以看見線條的形狀隨著我的滑鼠移動而改變,當我的滑鼠放開時,
才真正決正圖形的樣式,繪制在表單上。以下是我的程式碼:
Pen m_pen = new Pen(Color.Red, 2);
Graphics g = null;
int startx = 0;
int starty = 0;
int endx = 0;
int endy = 0;
bool isdraw = false;
public Form1()
{
InitializeComponent();
m_pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash;//設置
虛線
}
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
//開始點
startx = e.X;
starty = e.Y;
isdraw = true;
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
//開始畫
if (isdraw)
{
panel1.Refresh();
endx = e.X;
endy = e.Y;
g = panel1.CreateGraphics();
g.DrawLine(m_pen, startx, starty, endx, endy);
}
}
private void panel1_MouseUp(object sender, MouseEventArgs e)
{
if (isdraw)
{
g.DrawLine(m_pen, startx, starty, endx, endy);
}
}
雖然成功了,但產生一個問題,就是每當我的滑鼠按下左鍵時,
圖形就會被清空重繪,> <,有沒有什麼好方法可以解決此問題?
另外
如何才能呈現上一步和下一步的動作?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.25.118.83
※ 編輯: lsmptt 來自: 163.25.118.83 (12/08 11:23)
→ shooding:因為你呼叫了panel1.refresh 12/08 11:36
→ shooding:要畫到一張bitmap裡面, 再把bitmap顯示出來 12/08 11:37
推 ilovebbs:下一步?@@ 12/08 20:41