【发布时间】:2018-12-06 05:00:29
【问题描述】:
我知道对此有很多问题,但我无法让它发挥作用。我有这个活动:
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
e.Graphics.DrawRectangle(new Pen(selectionBrush, 1), selectionRectangle);
}
它可以正常工作。在我放在图片框内的图像上绘制一个彩色矩形。但是在我画了那个矩形之后,我想把它擦掉。我基本上将它用作裁剪图像的选择区域。有没有办法可以擦除我绘制的矩形?谢谢。
这里是我要擦除矩形的地方:
private void button1_Click(object sender, EventArgs e)
{
//here are some examples of what I have tried
pictureBox1.Invalidate();
Invalidate();
}
【问题讨论】:
-
设置标志是否绘制?
-
this.Invalidate()?Graphics.Clear?你想“保留”形状吗?为了澄清我的问题 - 您想要绘制矩形,然后立即将其清除?你想完成什么? -
如果我们能更好地理解这里的总体目标是什么、您想要做什么以及为什么这是“解决方案”的一部分,这将会有所帮助。
-
您的绘画程序调用了
DrawRectangle。然后你使矩形无效。此时,您的绘制例程将再次被调用,并且,如果您绘制矩形的代码仍然存在,它将被重新绘制。您需要这样做,以便在您不再需要它时不再调用DrawRectangle调用(使用if语句或其他东西)。您可能还希望将失效矩形的大小在四周扩大一个像素,以确保您不会留下任何面包屑
标签: c#