微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在运行时移除/删除形状

如何解决如何在运行时移除/删除形状

所以我在运行时在 vbExpress2008 中绘制了一个六边形

Private Sub Panel2_Paint(ByVal sender As Object,ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel2.Paint

        
       
        Dim Hpoint As Point
        
       yada yada yada

       e.Graphics.Drawpolygon(p,Points)


    End Sub

现在我怎样才能删除它?

解决方法

就您的代码而言,您无法将其删除。每次执行该代码时,它都会绘制该形状,因此无需删除任何内容。如果你想删除它,那么必须有一些东西要删除。这就是为什么您应该将表示绘图的数据存储在一个或多个字段中,然后每次要绘图时从那里获取数据。如果您有 List(Of Point()) 类型的字段,则可以根据需要添加和删除 Point 数组,然后强制执行 Paint 事件。在事件处理程序中,您获取当前数据并绘制它,因此您从 List 中删除的任何内容都将从绘图中删除。例如

Private polygons As New List(Of Point())

Private Sub AddPolygon(points As Point())
    polygons.Add(points)
    Invalidate()
End Sub

Private Sub RemovePolygon(points As Point())
    polygons.Remove(points)
    Invalidate()
End Sub

Private Sub Form1_Paint(sender As Object,e As PaintEventArgs) Handles Me.Paint
    For Each polygon In polygons
        e.Graphics.DrawPolygon(Pens.Black,polygon)
    Next
End Sub

或者,如果您只想显示或隐藏一个多边形,您仍然可以在 Paint 事件处理程序中对其进行硬编码,但使用 If 语句来测试 Boolean 类型的字段{1}}。然后,您可以切换该字段并使其无效以隐藏和显示该多边形。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。