[英]Getting “Index was out of range” exception in DataGridView when clicking header
[英]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.