子条目[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

子条目[index]不工作

我注意到您在listView1.SelectedItems的循环中,显示每个项目。

这没有意义。即使有一个选择,您可能也应该只取出一个listviewitem的值。

在我们的代码中的第二个错误是,你是Removing的循环项目从ListView。当你使用两个不同的集合时,即SelectedItemsItems,你仍然在修改迭代器,这是不允许的。

所以你需要定义你想要实现什么:删除所有选中的项目还是显示一个项目的内容?

要删除所有选中的项目,可以这样做:

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]);
}