You need to enable JavaScript to run this app. Windows Forms C# 如何删除ListView内容并保留列头框架
优惠活动
大模型
产品
解决方案
定价
更多

Windows Forms C# 如何删除ListView内容并保留列头框架

解决方案

你调用的ListView.Clear()方法属于控件级的全局清空API,执行时会同时删除列头、所有列表项、分组配置等全部控件内容,和你只删除数据行的需求不匹配。

修正方法

把代码中对Clear()的调用,替换为针对列表项集合的清空操作Items.Clear()即可,该方法只会删除展示的行数据,完全保留列头、列宽、排序规则等框架配置。

修正后完整代码

private void button2_Click_1(object sender, EventArgs e)
{
    Action<Control.ControlCollection> func = null;

    func = (controls) =>
    {
        foreach (Control control in controls)
            if (control is ListView listView)
                listView.Items.Clear();
            else
                func(control.Controls);
    };

    func(Controls);
}

可选优化点

  • 如果你使用的是较老版本的C#不支持模式匹配语法,直接把对应行改回(control as ListView).Items.Clear()即可正常运行
  • 如果你当前界面只有一个固定ID的ListView需要操作,不需要递归遍历所有控件查找,直接调用对应控件ID的Items.Clear()性能更好、逻辑更简单

内容的提问来源于stack exchange,提问作者LFLJM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 16:15:00