[問題] GDI繪圖問題

看板C_Sharp作者 (虛心向學)時間15年前 (2008/12/08 11:19), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
關於繪圖問題,我想要在繪圖的過程中看見我所編輯的形狀, 例如:畫一條直線,滑鼠按下去時開始編輯,在滑鼠移動的過程中, 我可以看見線條的形狀隨著我的滑鼠移動而改變,當我的滑鼠放開時, 才真正決正圖形的樣式,繪制在表單上。以下是我的程式碼: 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)

12/08 11:36, , 1F
因為你呼叫了panel1.refresh
12/08 11:36, 1F

12/08 11:37, , 2F
要畫到一張bitmap裡面, 再把bitmap顯示出來
12/08 11:37, 2F

12/08 20:41, , 3F
下一步?@@
12/08 20:41, 3F
文章代碼(AID): #19F994S2 (C_Sharp)
文章代碼(AID): #19F994S2 (C_Sharp)