【问题标题】:Override ListView Clear() method覆盖 ListView Clear() 方法
【发布时间】:2015-11-05 15:36:39
【问题描述】:

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

这运行良好,除了 Clear() 似乎没有触发 ItemSelectionChanged 事件。
这意味着在调用Clear() 之后,列表仍然包含在调用Clear() 之前突出显示的所有项目。

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

B 计划是我只写自己的方法,并在 clear 后立即调用它,但这不是很好。

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

【问题讨论】:

    标签: c# winforms listview


    【解决方案1】:

    其实我不知道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...");
        }
    }
    

    【讨论】:

    【解决方案2】:

    你不能覆盖非虚方法。所以编写你自己的“新”方法是最好的方法。

    This is a similar question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2016-03-06
      • 2018-03-27
      • 2014-05-27
      • 2014-01-04
      • 2021-11-11
      相关资源
      最近更新 更多