簡體   English   中英

mscorlib.dll C#中發生System.ArgumentOutOfRangeException

[英]System.ArgumentOutOfRangeException occurred in mscorlib.dll C#

我有一個DataGridView,它是從對象列表中填充的。 但是,通過我的foreach的第二個循環會導致ArgumentOutOfRangeException

這是我的代碼:

foreach (Abonat abonat in list.getAbonati())
{
    dataGridView1.Rows[i].Cells[0].Value = abonat.id; //exception occurs here on second loop
    dataGridView1.Rows[i].Cells[1].Value = abonat.prenume;
    dataGridView1.Rows[i].Cells[2].Value = abonat.nume;
    dataGridView1.Rows[i].Cells[3].Value = abonat.adresa;
    i++;
}

foreach第一次運行時,一切都很好,它甚至顯示在DataGridView中,但是第二次,我得到了異常(實際上它說類型為'System.ArgumentOutOfRangeException'的第一次機會異常發生在mscorlib.dll中 ),並且我的表格顯示出來,而沒有運行其余的foreach。

有什么幫助嗎? 我嘗試實例化dataGridView1.Rows[i] = new DataGridViewRow(); 但它是只讀的。

您需要先創建行,然后再嘗試訪問它們。

int n = dataGridView1.Rows.Add();

dataGridView1.Rows[n].Cells[0].Value = title;
dataGridView1.Rows[n].Cells[1].Value = dateTimeNow;

然后,您將可以通過dataGridView1.Rows [ n ] .Cells [0] .Value = x;訪問它們。

干杯

在代碼上方添加以下內容

dataGridView1.ColumnCount = 4; dataGridView1.ColumnHeadersVisible = true;

您不能以這種方式添加它。 對於初學者來說,它是未知的或未定義的,但是您可以增加它。 您可以添加任意多的行,但添加的行不正確是我們要告訴您的。

這里的用法不正確:dataGridView1.Rows [i] .Cells [0] .Value = abonat.id;

暫無
暫無

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

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