//注册两个事件
dgv.CellClick += Dgv_CellClick;
dgv.DataBindingComplete += Dgv_DataBindingComplete;
//记录 选中的行
private void Dgv_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
if (e.RowIndex >= 0)
{
dgv.Tag = e.RowIndex;
}
}
//如果可能指定行选中
private void Dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
string tmp = dgv.Tag.ToString();
int rowid = 0;
if (int.TryParse(tmp, out rowid) && dgv.Rows.Count >= rowid+1)
{
for (int i = 0; i < dgv.Columns.Count; i++)
{
if (dgv.Columns[i].Visible == true)
{
dgv.CurrentCell = dgv.Rows[rowid].Cells[i];
break;
}
}
}
}
解决:DataGridView 刷新后总是默认选中第一行
于 2022-11-22 14:53:52 首次发布