我想获得特定项目的子项目,
textBox1.Text = item.SubItems[1].Text;
最近,我遇到了item.SubItems[index]
的问题。虽然我找到了设置值的解决方法,但我无法获取或设置该值。然而,我仍然无法得到。我查了一下,没有人似乎有同样的问题,所以我确定我做了一些明显的错误。我只是不知道发生了什么。
编辑:
根本没有错误。除了textBox1.Text没有设置为子项文本外,程序继续运行就像没有出错一样。项目是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。
答案 0 :(得分:0)
我注意到你在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]);
}