我尝试使用以下方法在 Picturebox 上绘制自定义选择矩形:
void _drag_UpdateView(bool clearOnly, MouseEventArgs e)
{
System.Diagnostics.Debug.WriteLine("UpdateView");
using (Graphics g = this.i_rendered.CreateGraphics())
{
g.Clear(Color.Transparent);
if (clearOnly)
return;
int px = (_drag_start.X > e.Location.X)?e.Location.X:_drag_start.X;
int py = (_drag_start.Y > e.Location.Y)?e.Location.Y:_drag_start.Y;
if (px < 0)
px = 0;
if (py < 0)
py = 0;
int wx = Math.Abs(e.Location.X-_drag_start.X);
int wy = Math.Abs(e.Location.Y-_drag_start.Y);
g.DrawRectangle(Pens.LightBlue, px, py, wx, wy);
}
}
每当我打电话时:
g.Clear(Color.Transparent);
整个图片框变黑。但是,矩形被绘制在它上面。如果我不调用该方法,那么矩形当然会自行堆叠。我想删除旧的矩形并创建一个这样的新矩形。
谁能描述什么是错的?