在 Windows 窗体中删除绘制的对象

Posted

技术标签:

【中文标题】在 Windows 窗体中删除绘制的对象【英文标题】:Remove a drawn object in Windows Forms 【发布时间】:2016-05-31 10:57:01 【问题描述】:

我创建了一个 Windows 窗体,我在其中绘制了 3 个对象(矩形、圆形和线条)。我为所有这些对象提供了 1 个基类,并为每个对象提供了单独的类。所有对象都存储在一个数组中。

在 Windows 窗体中创建了一个用于绘制对象的面板和 3 个用于绘制对象的按钮。

我需要的是通过鼠标单击选择一个对象并将其突出显示,然后按第四个按钮将其删除。

问题是我不知道如何选择被点击的对象... 任何指南或一段代码,怎么做?

【问题讨论】:

这个想法是总是重绘表面。删除一个零件就是简单地停止绘制它。您可以重绘整个可见区域或仅重绘一部分。 是的,但是如何确定单击了哪个对象以及它存储在数组的哪个位置? 【参考方案1】:

在您的 onClick 事件中,将 sender 参数转换为 Object 类型,如下所示:

ObjectBeingClicked objectName = (ObjectBeingClicked)sender;

或者另一个例子:

矩形rect = (矩形)发件人;

【讨论】:

以上是关于在 Windows 窗体中删除绘制的对象的主要内容,如果未能解决你的问题,请参考以下文章

C# windows 窗体,Line 不会绘制!画布未定义

Windows 窗体 - 等到窗体完全绘制(绘制)

wpf(windos窗体)

制作windos后台服务进程类型nohup命令

如何在 C# windows 窗体中绘制可缩放图像

在具有一些控件的 Windows 窗体上绘制半透明覆盖图像