我想要清理PictureBox图像,所以我制作了这段代码:TransparentPictureBox.Image = Nothing
,图像不会消失,我会获得与之前重叠的所有新图像。我该如何解决这个问题?
我继续使用自定义控件,这是类:
Public Class TransparentPictureBox
Inherits PictureBox
Public Sub New()
Me.SetStyle(ControlStyles.Opaque, True)
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, False)
End Sub
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H20 ' Turn on WS_EX_TRANSPARENT
Return cp
End Get
End Property
End Class
答案 0 :(得分:1)
控件的工作方式完全符合您的设计。
将ControlStyles.Opaque选项设置为True
时,它不会绘制其背景:
如果为true,则控件将被绘制为不透明且背景未绘制。
当您将Image
属性设置为Nothing
时,您希望将其清空。
PictureBox
如何吸引自己呢?它首先绘制背景颜色,然后在其上绘制图像。但是,由于您已禁用背景绘制,因此不会绘制背景,也不会删除先前的图像。
为什么要设置该选项?如果这不是您正在寻找的行为,请将其删除。
答案 1 :(得分:-1)
写这个虽然这不是最佳解决方案,但它会起作用 picturebox1.imagelocation =“”