1

私がやろうとしているのは、リストビューでアイテムを選択することです。これでうまくいきます。つまり、1回だけ機能し、最初にアイテムを選択するとうまくいき、2回目はfeatures [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);
        }
    }
}     

誰かが問題が何であるか知っていますか?

4

1 に答える 1

2

リストビューをクリックした場合にも、この例外が発生することは間違いありません。

このイベントは選択の変更のためのものであることを忘れないでください。これは、何かが選択され、現在は何も選択されていないことを意味している可能性があります。実際、これによるとイベントは選択されたものごとに1回発生します。その場合は、この問題に関する詳細と設計について、そのリンクを参照してください。

それ以外の場合は、インデックスを作成する前に、「features」変数に何かが含まれていることを確認してください。

于 2012-03-20T13:14:14.747 に答える