从列表视图中选择项目

时间:2012-03-20 13:04:59

标签: c# winforms listview selectedindexchanged indexoutofboundsexception

我要做的是在列表视图中选择一个项目,它有效!那就是它工作一次,第一次选择一个项目就好了,第二次得到一个参数超出范围异常的特征[0] .SubItems [1] .Text;在零上。

这就是我所拥有的:

private void listViewFeatures_SelectedIndexChanged(object sender, EventArgs e) 
{
    ListView.SelectedListViewItemCollection features = listViewFeatures.SelectedItems;
    string feature = features[0].SubItems[1].Text;
    BL_AddReport addReport = new BL_AddReport(this.databaseConnectionString);

    Dictionary<string, bool> pictures = addReport.GetpicturesFromFeature(feature);

    foreach (KeyValuePair<string, bool> pic in pictures) 
    {
        if (pic.Value) {
            pictureBoxCar.Image = Image.FromFile(pic.Key);
        }
        else 
        {
            pictureBoxEquip.Image = Image.FromFile(pic.Key);
        }
    }
}     

有谁知道问题是什么?

1 个答案:

答案 0 :(得分:2)

如果你点击列表视图,我打赌你会得到这个例外。

请记住,此事件适用于选择更改..这可能意味着某些内容已被选中,现在什么都没有。实际上,根据this,对于所选择的每个事物都会触发一次事件。如果是这种情况,请查看该链接以获取有关此问题的更多信息和设计。

否则,只需检查以确保您的“features”变量在索引之前有任何内容