有关bitmap和picturebox的问题

kira155716 2008-08-01 03:54:57
bt和bt2都是Bitmap对象,其中bt是用作创建picBox的image的
MouseEventHandler delUp;//定义事件的委托
MouseEventHandler delDown;
MouseEventHandler delMove;
int x, y,m,n;//定义起始和末的坐标

private void picBox_MouseDown(object sender, MouseEventArgs e)
{
this.x = e.X;
this.y = e.Y;
}
private void picBox_MouseMove(object sender, MouseEventArgs e)
{
this.m = e.X;
this.n = e.Y;
picBox.Invalidate();
}
private void picBox_MouseUp(object sender, MouseEventArgs e)
{
this.m = e.X;
this.n = e.Y;
}
private void LineUp(object sender, MouseEventArgs e)
{
this.picBox.MouseMove -= delMove;
}
private void LineDown(object sender, EventArgs e)
{
bt2 = new Bitmap(picBox.Image);
this.picBox.MouseMove += delMove;
}
private void LineMove(object sender, EventArgs e)
{
picBox.Image = bt2;
Graphics gp = Graphics.FromImage(picBox.Image);
Pen p = new Pen(color, wid);
gp.DrawLine(p, this.x, this.y, this.m, this.n);
gp.Dispose();
p.Dispose();
}
private void btnLine_Click(object sender, EventArgs e)
{
delUp = new MouseEventHandler(Line);
delDown = new MouseEventHandler(LineDown);
delMove = new MouseEventHandler(LineMove);
this.picBox.MouseDown += delDown;
this.picBox.MouseUp += delUp;
}


我是直接在picBox的image上进行绘图的,我的想法是用一个Bitmap对象在picBox_MouseDown事件里把picBox的image存储下来,并且加上picBox_MouseMove事件,然后在picBox_MouseMove事件把picBox的image给换成这个之前存储的那个图像,然后划线,然后移动的时候就先载入那个之前存储的图片对象,再重新划线,然后在picBox_MouseUp中把picBox_MouseMove的方法取消,请问我这方法有问题么?
可是还是出现很多条线,请高手帮帮忙~
...全文
275 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kira155716 2008-08-01
  • 打赏
  • 举报
回复
额···没人回吗、?
kira155716 2008-08-01
  • 打赏
  • 举报
回复
private void btnLine_Click(object sender, EventArgs e)
{
delUp = new MouseEventHandler(LineUp); 《=========这里应该是这样才对,不好意思弄错了
delDown = new MouseEventHandler(LineDown);
delMove = new MouseEventHandler(LineMove);
this.picBox.MouseDown += delDown;
this.picBox.MouseUp += delUp;
}

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧