如果我在面板中绘制一些矩形,我如何选择其中一个并删除它。我的代码在这里我把它写在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();
答案 0 :(得分:0)
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,然后从那个路径创建一个GraphicsPath,我相信你可以创建一个Region,它可以选择矩形的实际行。
每次评论更新
我查了一下,但我没有看到Region
的{{1}}属性。因此,要创建Region,请执行以下操作:
Rectangle
答案 1 :(得分:0)
在面板上绘图就像在一张纸上绘图一样 - 它们被蚀刻成不再是矩形,而是一组像素。即使您可以使用背景颜色在要清除的矩形上绘制一个矩形,也不会“移除矩形”,您只需在现有矩形上绘制一个矩形。