代码如下,当我拖动鼠标的时候,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();
}
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; }
}