子条目[index]不工作
本文关键字:工作 index | 更新日期: 2023-09-27 18:08:49
我想获得一个特定项目的子项,
textBox1.Text = item.SubItems[1].Text;
最近,我一直有item.SubItems[index]
的问题。我无法获取或设置该值,尽管我已经找到了设置该值的变通方法。然而,我还是得不到。我查了一下,似乎没有人有同样的问题,所以我肯定我做了一些明显的错误。我完全不知道这是怎么回事。
根本没有错误。程序继续运行,就像没有任何问题一样,除了textBox1。文本未设置为子项文本。Item是一个listviewitem。下面是一些代码:
foreach (ListViewItem item in ths.listView1.SelectedItems)
{
textBox1.Text = item.Text;
numericUpDown1.Value = Convert.ToDecimal(item.SubItems[1]);
comboBox1.Text = item.SubItems[2].Text;
textBox3.Text = item.SubItems[3].Text;
ths.listView1.Items.Remove(item);
}
这是Form1
我注意到您在listView1.SelectedItems
的循环中,显示每个项目。
这没有意义。即使有一个选择,您可能也应该只取出一个listviewitem的值。
在我们的代码中的第二个错误是,你是Removing
的循环项目从ListView。当你使用两个不同的集合时,即SelectedItems
和Items
,你仍然在修改迭代器,这是不允许的。
所以你需要定义你想要实现什么:删除所有选中的项目还是显示一个项目的内容?
要删除所有选中的项目,可以这样做:
while (listView1.SelectedItems.Count > 0)
listView1.Items.Remove(listView1.SelectedItems[0]);
也许你想显示你删除的最后一项的值…??如果是这样,方法如下:
while (listView1.SelectedItems.Count > 0)
{
if (listView1.SelectedItems.Count == 1)
{
ListViewItem item = listView1.SelectedItems[0];
textBox1.Text = item.Text;
numericUpDown1.Value = Convert.ToDecimal(item.SubItems[1]);
comboBox1.Text = item.SubItems[2].Text;
textBox3.Text = item.SubItems[3].Text;
}
listView1.Items.Remove(listView1.SelectedItems[0]);
}