作者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)
1F:→ shooding:因为你呼叫了panel1.refresh 12/08 11:36
2F:→ shooding:要画到一张bitmap里面, 再把bitmap显示出来 12/08 11:37
3F:推 ilovebbs:下一步?@@ 12/08 20:41