我需要使用datagridview
获取cellClick_event
的最后编辑单元格的行索引。
我试过这样:
private void DataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
var lastIndex = DataGridView.SelectedRows[DataGridView.SelectedRows.Count - 1].Index;
var currentIndex = DataGridView.CurrentRow.Index;
if (currentIndex != lastIndex)
{
//code
}
else
{
}
}
但它不起作用。我收到了错误:
index out of bound
cell's
获取数据网格视图的上次编辑的cellClick_event
行索引?datagridview.cellclick
以外还有其他事件可以解决吗?答案 0 :(得分:1)
假设您要比较单击当前正在编辑的行的行,这应该可以解决问题;
void DataGridView_CellClick(object sender, DataGridViewCellEventArgs e) {
int currentIndex = DataGridView.CurrentRow.Index;
int clickedCellRowIndex = e.RowIndex;
if (currentIndex == clickedCellRowIndex) {
//do work
}
答案 1 :(得分:0)
将datagridview editeMode设置为EditonEnter。然后,当您单击单元格时,它应该为您提供上次修改的行的索引,该行是您已进入的单元格的行索引。
int i = dataGridView.CurrentRow.Index;
或者,如果您在编辑上一行的索引之后,可以在“Cell_Leave”事件句柄中记录上述值。
答案 2 :(得分:0)
你不能使用CellEndEdit事件。调用此方法后,您将可以访问刚刚编辑过的行。但是你必须找到一种方法来查看它是否实际被编辑过,因为我认为即使编辑被取消也会调用它。
乙
答案 3 :(得分:0)
这可能对你有所帮助
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[e.ColumnIndex];
}