我在windows窗体中对datagridview的标题进行排序时遇到问题...
这是我在CellContentClick上的代码
private void dgvApprovazione_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvApprovazione.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewLinkCell)
{//Process link on string
System.Diagnostics.Process.Start(dgvApprovazione.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string);
}
}
如何解决?
答案 0 :(得分:3)
您应该检查点击的单元格是否不在标题行中,否则当您尝试访问该行的单元格时,会收到mapWithNotSoImportantValues.putAll( mapWithImportantValues );
,因为您试图在ArgumentOutOfRangeException
获取单元格。
指数超出范围。必须是非负数且小于 集合。
您需要检查RowIndex = -1
答案 1 :(得分:0)
那是因为您单击了标题,而不是一行。
CellClick
会同时触发,并在您点击标题时传递RowIndex
到-1。
单击标题时,更改代码以忽略事件:
private void dgvApprovazione_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1) return;
if (dgvApprovazione.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewLinkCell)
{//Process link on string
System.Diagnostics.Process.Start(dgvApprovazione.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string);
}
}