繁体   English   中英

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

[英]How can i select drawn rectangle and clear it in Panel?

如果我在面板中绘制了一些矩形,如何选择其中一个并将其删除。 我在这里的代码已将其写入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();

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,然后从该路径创建,我相信您可以创建Region来选择矩形的实际线条。

每条评论 更新

区域
图形路径

我检查了一下,但没有看到RectangleRegion属性。 因此,要创建Region,请执行以下操作:

var gPath = new GraphicsPath();
gPath.AddRectangle(rectangle);

var region = new Region(gPath);  

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM