C# ListView删除列,但它仍然存在
我使用C# ListView删除列,但它仍然存在,c#,winforms,listview,C#,Winforms,Listview,我使用ListView.Columns.RemoveAt删除列 显示屏上的结果是正确的。根据显示,该列已被删除,并且删除操作已应用于所有listview项 但我还添加了一个按钮,用于将ListView项目的文本传输到剪贴板 传输的结果包含所有列,包括删除的列 删除列后是否需要应用某些更新方法?列表视图的列只是显示子项的点而不是存储的点 对于存储,每个ListVieItem都可以有(其自身数量的)子项 删除列时,子项保持不变 您必须在项上循环,并在适用的情况下删除不需要的子项 示例1:将此项添加到
ListView.Columns.RemoveAt
删除列
显示屏上的结果是正确的。根据显示,该列已被删除,并且删除操作已应用于所有listview项
但我还添加了一个按钮,用于将ListView项目的文本传输到剪贴板
传输的结果包含所有列,包括删除的列
删除列后是否需要应用某些更新方法?列表视图的
列
只是显示子项
的点而不是存储的点
对于存储,每个ListVieItem
都可以有(其自身数量的)子项
删除列
时,子项
保持不变
您必须在项上循环
,并在适用的情况下删除不需要的子项
示例1:将此项添加到按钮
中,并观察如何按按钮
:
private void button1_Click(object sender, EventArgs e)
{
listView1.Items[0].SubItems.Add("ABC");
Console.WriteLine("Item 0 has " + listView1.Items[0].SubItems.Count + " subitems.);
}
如果您有一个项[0]
,您可以添加任意多的子项,而不必定义一个列
。所以他们在那里,但他们没有表现出来
示例2:现在添加另一个按钮
:
private void button2_Click(object sender, EventArgs e)
{
int someindex = 4;
foreach (ListViewItem lvi in listView1.Items)
if (lvi.SubItems.Count - 1 > someindex && lvi.SubItems[someindex] != null)
{
lvi.SubItems.RemoveAt(someindex);
Console.WriteLine("Subitem " + someindex + " removed in Item " + lvi.Index);
}
}
这是您如何从每个项目中删除第5个子项目的方法,如果有一个项目的话。如果您不发布相关代码,我们很难确定是什么问题。还有,WPF还是Winforms?请添加适当的标记。您如何将数据设置到剪贴板?我投票结束此问题,因为您不清楚您在问什么,因为您没有提供足够的信息来解决此问题。我认为,即使没有添加代码,问题的描述也很清楚和充分,并且此问题非常有趣,值得关注..啊哈!非常感谢。这是有道理的。如果你对答案感到满意,请考虑考虑它。我发现你从来没有这样做过:点击左上角答案票数下方的(不可见)复选标记,然后点击它!它变绿了,给我们俩都赢得了一点声誉。。