C# 重写ListView Clear()方法

C# 重写ListView Clear()方法,c#,winforms,listview,C#,Winforms,Listview,我有一个ListView类,它使用ItemSelectionChanged事件来维护自己的所选项目列表 除了Clear()似乎没有触发ItemSelectionChanged事件之外,这一切都很正常。 这意味着在调用Clear()之后,列表仍然包含在调用Clear()之前突出显示的所有项目 我想重写Clear()方法,这样我就可以自己清除列表,但我可以看到它没有标记为虚拟。是否有其他方法可以使用现有的Clear()方法 方案B是,我只编写自己的方法,并在清除后立即调用它,但这并没有那么好 lis

我有一个
ListView
类,它使用
ItemSelectionChanged
事件来维护自己的所选项目列表

除了
Clear()
似乎没有触发
ItemSelectionChanged
事件之外,这一切都很正常。
这意味着在调用
Clear()
之后,列表仍然包含在调用
Clear()
之前突出显示的所有项目

我想重写
Clear()
方法,这样我就可以自己清除列表,但我可以看到它没有标记为虚拟。是否有其他方法可以使用现有的
Clear()
方法

方案B是,我只编写自己的方法,并在清除后立即调用它,但这并没有那么好

listView1.Clear();
listView1.ClearMyList();

事实上,我不知道c#(public new void)的这个功能的名称,但是您可以通过创建自己的“customListView”来实现这一点


您不能重写非虚拟方法。因此,编写自己的“新”方法是最好的方法


继承是一个名字我指的是“公共新空间”,这也是继承吗?不,这是隐藏:
var listView = new CustomListView();
listView.Clear();

public class CustomListView : ListView
{
    public new void Clear()
    {
        Console.WriteLine("I can clear myself...");
    }
}