如何选择绘制的矩形并在面板中清除它?

时间:2014-01-07 20:11:21

标签: c#

如果我在面板中绘制一些矩形,我如何选择其中一个并删除它。我的代码在这里我把它写在panel_OnClick事件:

g = panel1.CreateGraphics();
Pen p = new Pen(Color.Black);
p.Width = 2;
g.DrawRectangle(p, e.X, e.Y, 100, 60);
p.Dispose();
g.Dispose();

2 个答案:

答案 0 :(得分:0)

Rectangle将有一个Region 您需要订阅以下其中一项:MouseClickMouseDownMouseUp

// assuming you keep a reference of the rectangle

void OnMouseClick(object sender, MouseEventArgs e) {
   if(myRect.Region.IsVisible(e.Location) {
      // perform action on myRect ... 
      // have window Invalidate(myRect)
      // Refresh() the invalidated area.
   }   

}

此代码段假定没有矩形重叠。你也可以从Rectangle的点创建一个GraphicsPath,然后从那个路径创建一个GraphicsPath,我相信你可以创建一个Region,它可以选择矩形的实际行。

每次评论

更新

Region
GraphicsPath

我查了一下,但我没有看到Region的{​​{1}}属性。因此,要创建Region,请执行以下操作:

Rectangle

答案 1 :(得分:0)

在面板上绘图就像在一张纸上绘图一样 - 它们被蚀刻成不再是矩形,而是一组像素。即使您可以使用背景颜色在要清除的矩形上绘制一个矩形,也不会“移除矩形”,您只需在现有矩形上绘制一个矩形。