我希望创建一个不包含BackgroundImage属性的自定义用户控件。
我明白你不能(显然没有工作解决方案)创建一个继承另一个控件然后删除公共属性的控件,但是,我有以下代码
Public Class Board
End Class
即使我不是“继承”任何其他控件,仍然有一吨我不希望拥有的属性。我能够使用Visual Basic 6创建一个100%的自定义控件,它不包含任何我不想包含的属性。
如何在VB.NET 2012中实现相同的目标(不使用VB6或“过时”代码)
我看到设计的控件没有这个属性,所以我只能假设它是可能的 - 只是没有关于这个主题的文档,任何与此并行的主题都是模糊的或无功能的。
答案 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