簡體   English   中英

選擇標頭時,datagridview中的索引超出范圍異常

[英]Index out of range exception in datagridview when header is selected

我有一個datagridview,當我單擊標題進行排序或出於任何原因時,在下面的代碼行中出現跟隨錯誤。

討論我們的范圍異常(索引超出范圍。必須為非負且小於集合的大小。

 private void firearmView_CellClick(object sender, DataGridViewCellEventArgs e)
    {
            //I get the above error on the IF line below.
            if (!firearmView.Rows[e.RowIndex].IsNewRow) 
            {
                selectedFirearmPictureBox.Image = Image.FromFile(firearmView.Rows[e.RowIndex].Cells[12].Value.ToString(), true);
            }

    }

我不知道為什么我在這里遇到這個特定錯誤。

MSDN在有關RowIndex屬性的文檔中說

當RowIndex屬性返回-1時,單元格要么是列標題,要么是單元格的行被共享。

因此,您在收到事件時需要處理e.RowIndex == -1
(...索引不得為負。...)

private void firearmView_CellClick(object sender, DataGridViewCellEventArgs e)
{

    if(e.RowIndex == -1) return;

    if (!firearmView.Rows[e.RowIndex].IsNewRow) 
    {
        selectedFirearmPictureBox.Image = Image.FromFile(firearmView.Rows[e.RowIndex].Cells[12].Value.ToString(), true);
    }
}

暫無
暫無

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

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