[英]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
。
您将需要订阅以下之一: MouseClick
, MouseDown
, MouseUp
。
// 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来选择矩形的实际线条。
每条评论 更新
我检查了一下,但没有看到Rectangle
的Region
属性。 因此,要创建Region,请执行以下操作:
var gPath = new GraphicsPath();
gPath.AddRectangle(rectangle);
var region = new Region(gPath);
在面板上绘制就像在一张纸上绘制一样-它们被蚀刻,不再是矩形,而是像素集合。 即使您可以使用背景色在要清除的矩形上绘制一个矩形,也不会“删除矩形”,而只是在现有的矩形上绘制一个矩形。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.