代码如下,当我拖动鼠标的时候,picturebox的图形会出现,会随着鼠标拖动变化,但是当我停止拖动,并且没有松鼠标的时候,图形的线就消失了,如果我松了鼠标,或者拖动鼠标,图形的线会出现。就是说我鼠标按下不动的时候图形就消失,可能是mouseMove方法里的事,不知道怎么回事,求指导。
bool isDrawEllipseDown = false; private void pictureBox_mouseDown(object sender, MouseEventArgs e)
{
isDrawEllipseDown = true;
StarPoint.X = e.X;
StarPoint.Y = e.Y;
} private void pictureBox_mouseMove(object sender, MouseEventArgs e)
{
Pen p = new Pen(Color.Black, 5);
Graphics g1 = this.pictureBox1.CreateGraphics();
g1.DrawEllipse(p, StarPoint.X, StarPoint.Y, e.X - StarPoint.X, e.Y - StarPoint.Y);
pictureBox1.Refresh();
}
private void pictureBox_mouseUp(object sender, MouseEventArgs e)
{
isDrawEllipseDown = false;
Pen p = new Pen(Color.Black, 5);
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawEllipse(p, StarPoint.X, StarPoint.Y, e.X - StarPoint.X, e.Y - StarPoint.Y);
pictureBox1.Refresh();
p.Dispose();
g.Dispose();
}
bool isDrawEllipseDown = false; private void pictureBox_mouseDown(object sender, MouseEventArgs e)
{
isDrawEllipseDown = true;
StarPoint.X = e.X;
StarPoint.Y = e.Y;
} private void pictureBox_mouseMove(object sender, MouseEventArgs e)
{
Pen p = new Pen(Color.Black, 5);
Graphics g1 = this.pictureBox1.CreateGraphics();
g1.DrawEllipse(p, StarPoint.X, StarPoint.Y, e.X - StarPoint.X, e.Y - StarPoint.Y);
pictureBox1.Refresh();
}
private void pictureBox_mouseUp(object sender, MouseEventArgs e)
{
isDrawEllipseDown = false;
Pen p = new Pen(Color.Black, 5);
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawEllipse(p, StarPoint.X, StarPoint.Y, e.X - StarPoint.X, e.Y - StarPoint.Y);
pictureBox1.Refresh();
p.Dispose();
g.Dispose();
}
解决方案 »
- 有关 SerialPort 的两点疑问,求解答!
- 数据库问题,adapter.update无法更新数据源
- 在使用Entity Framework时,删除某个表的一条记录然后又增加相同记录时,报错
- 有关WCF+数据实体框架
- 关于静态字段的简单使用问题..
- [12.28]请问《C#高级编程》书的纸会不会臭,版主鼠标下留情!!!谢谢!
- 如何使用C#代码改变某一用户的权限(详见描述)?
- richtextbox的编辑功能如何实现?帮小弟一忙!
- 我找遍了所有的vs2003中文版下载地址,统统不能下,求助各位给我一个可以下载的地址吧
- C# 的wpf 显示图片用鼠标点击获得图片像素坐标 怎么弄?
- 求一个ASP.NET 用户角色权限管理小系统
- 求助一个简单的C#问题
int p_x, p_y;
Color c = new Color();
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
p_x = e.X;
p_y = e.Y;
} private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
Graphics g = pictureBox1.CreateGraphics();
if (e.Button == MouseButtons.Left)
{
g.DrawLine(new Pen(c, Convert.ToInt32(comboBox1.SelectedItem)), new Point(p_x, p_y), new Point(e.X, e.Y));
//g.FillPie(new SolidBrush(Color.Red), p_x, p_y, Convert.ToInt32(comboBox1.SelectedItem), Convert.ToInt32(comboBox1.SelectedItem), 0, 360);
//g.DrawLine(new Pen(
p_x = e.X;
p_y = e.Y; }
}