我使用ListView.Columns.RemoveAt
删除列。
显示的结果是正确的。根据显示,该列已被删除,删除已应用于所有列表视图项目。
但我还添加了一个按钮来传输ListView项目'文字到剪贴板。
传输结果包含所有列 - 包括已删除的列。
在删除列后是否可能需要应用一些更新方法?
答案 0 :(得分:0)
Columns
的{{1}}只是Listview
显示而非存储的地方。
对于存储空间,每个SubItems
都可以拥有({1}}个ListVieItem
。
删除SubItems
后,Column
不受影响。
您必须<{>>循环而不是SubItems
,并删除不需要的Items
。
示例1:将其添加到SubItems
,并观察如何随时按Button
:
Button
如果你有一个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.);
}
,你可以根据需要添加Item[0]
个,没有定义了SubItems
应该显示的地方。所以他们在那里,但他们没有表现出来。
示例2:现在添加另一个Column
:
Button
如果有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);
}
}
,可以从5th SubItem
移除Item
。