簡體   English   中英

listview-System.ArgumentOutOfRangeException

[英]listview- System.ArgumentOutOfRangeException

我有一個有7列的列表視圖。 我想在每列上添加信息,但是當它從listView到達子項2時,即使我有該子項,我也會得到System.ArgumentOutOfRangeException

知道為什么我會收到此錯誤嗎? 我試圖搜索它,但是沒有找到類似的情況。 這是我收到該錯誤的代碼部分:

if (seen == true)
            listView1.SelectedItems[0].SubItems[2].Tag = "Seen";
        else
            listView1.SelectedItems[0].SubItems[2].Tag = "Not Seen";

您可能在每個項目中都沒有所有這些SubItem。

還是什么都沒選? (請注意,當未選擇 Item也會調用SelectionChanged事件!)

請注意,無論您創建了多少ColumnsListView中的每個Item都可以擁有自己SubItems 數量 這些僅提供顯示數據的空間,而不提供無需創建SubItems即可訪問的插槽!

因此,在訪問它之前必須先對其進行測試! 換句話說: ListView結構不是2d數組,而是鋸齒狀的數組

這可能是一個檢查..:

if ( listView1.SelectedItems[0].Count > 0 &&     
     listView1.SelectedItems[0].SubItems.Count > 2 )
   listView1.SelectedItems[0].SubItems[2].Tag = seen ?  "Seen" :  "Not Seen";

..但是您更了解自己的代碼,並且可能會找到更好的方法來進行必要的測試。

只是不要依賴於SubItems的數量等於Columns的數量。 他們不是在所有相關的, 或者可能更大每個Item

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM