如何在VB.NET for WinForms中创建没有BackgroundImage属性的自定义可滚动用户控件

时间:2014-07-21 22:04:02

标签: vb.net winforms user-controls

我希望创建一个不包含BackgroundImage属性的自定义用户控件。

我明白你不能(显然没有工作解决方案)创建一个继承另一个控件然后删除公共属性的控件,但是,我有以下代码

Public Class Board

End Class

即使我不是“继承”任何其他控件,仍然有一吨我不希望拥有的属性。我能够使用Visual Basic 6创建一个100%的自定义控件,它不包含任何我不想包含的属性。

如何在VB.NET 2012中实现相同的目标(不使用VB6或“过时”代码)

我看到设计的控件没有这个属性,所以我只能假设它是可能的 - 只是没有关于这个主题的文档,任何与此并行的主题都是模糊的或无功能的。

1 个答案:

答案 0 :(得分:0)

如果要实现控件,则必须继承Control类。当然,它有很多属性,.NET控件比VB6控件有更多的功能。没有什么可惊慌的,如果你想隐藏一个属性,那么你使用一个属性:

Imports System.ComponentModel

Public Class MyControl
    Inherits ScrollableControl

    <Browsable(False), EditorBrowsable(EditorBrowsableState.Never)> _
    Public Overrides Property BackgroundImage As Image
        Get
            Return MyBase.BackgroundImage
        End Get
        Set
            MyBase.BackgroundImage = value
        End Set
    End Property

End Class

如果你想强制执行它以便客户端程序员不能作弊,那么你也可以覆盖PaintBackground()方法:

Protected Overrides Sub OnPaintBackground(pevent As PaintEventArgs)
    pevent.Graphics.Clear(Me.BackColor)
End Sub