1

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

然后我想Listview.Items.Add()从智能感知或控件本身隐藏(或以任何方式完全删除)本机方法,只显示我的AddItem方法而不是Items.Add.

我怎么能做到这一点?

4

2 回答 2

2

您可以尝试隐藏 Items 集合,然后应用属性来隐藏它:

<Browsable(False), _
 EditorBrowsable(EditorBrowsableState.Never)> _
Public Shadows ReadOnly Property Items As ListViewItemCollection
  Get
    Return MyBase.Items
  End Get
End Property
于 2013-11-05T17:45:16.013 回答
1

虽然它不会从 Intellisense隐藏Add和方法,但您可以使用AsReadOnly函数来确保列表公开为ReadOnlyCollection。这将通过抛出 a来阻止使用or方法,因此它将迫使开发人员使用您的and方法。RemoveAddRemoveNotSupportedExceptionAddItemRemoveItem

于 2013-11-05T18:46:12.240 回答