隐藏Intellisense的控制方法?

时间:2013-11-05 17:29:32

标签: .net vb.net winforms user-controls intellisense

我有一个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>

我怎么能这样做?

2 个答案:

答案 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中的AddRemove方法,但您可以使用AsReadOnly函数确保列表公开为ReadOnlyCollection。这会阻止使用AddRemove方法抛出NotSupportedException,因此会强制开发人员使用您的AddItemRemoveItem方法。