我有一个ListView用户控件,我已经实现了已知的AddItem
RemoveItem
过程:
Public Function AddItem(ByVal Item As ListViewItem) As ListViewItem
RaiseEvent ItemAdded(Me, New ItemAddedEventArgs With { _
.Item = Item
})
Return MyBase.Items.Add(Item)
End Function
然后我想隐藏(或以任何方式完全删除)intellisense或控件本身的原始方法Listview.Items.Add()
,只显示我的AddItem
方法,而不是Items.Add
。< / p>
我怎么能这样做?
答案 0 :(得分:2)
您可以尝试遮蔽Items集合,然后应用属性来隐藏它:
<Browsable(False), _
EditorBrowsable(EditorBrowsableState.Never)> _
Public Shadows ReadOnly Property Items As ListViewItemCollection
Get
Return MyBase.Items
End Get
End Property
答案 1 :(得分:1)
虽然它不会隐藏Intellisense中的Add
和Remove
方法,但您可以使用AsReadOnly函数确保列表公开为ReadOnlyCollection。这会阻止使用Add
或Remove
方法抛出NotSupportedException
,因此会强制开发人员使用您的AddItem
和RemoveItem
方法。