110,536
社区成员
发帖
与我相关
我的任务
分享
private DataTable m_dtAmbulance= new DataTable();
int selectedIndex = -1; // <-- 保存当前选中行的索引
dataGridView_Ambulance.SuspendLayout();
//记录选择行
string tempStr = "";
if (dataGridView_Ambulance.SelectedRows.Count > 0)
{
selectedIndex = dataGridView_Ambulance.SelectedRows[0].Index; // <-- 保存当前第一个选中行的索引
tempStr = dataGridView_Ambulance.SelectedRows[0].Cells["车辆编码"].Value.ToString();
}
//重新加载数据集
m_dtAmbulance = AmbulanceDataCommBLL.Instance.GetValidAmbulance();
dataGridView_Ambulance.DataSource = m_dtAmbulance;
foreach (DataGridViewRow aRow in dataGridView_Ambulance.Rows)
{
if (aRow.Cells["车辆编码"].Value.ToString() == tempStr)
{
dataGridView_Ambulance.CurrentCell = aRow.Cells["实际标识"];
break;
}
}
// 防止索引越界
if (selectedIndex > dataGridView_Ambulance.Rows.Count - 1)
{
selectedIndex = dataGridView_Ambulance.Rows.Count - 1;
}
// 设定选中行
if (selectedIndex >= 0)
{
dataGridView_Ambulance.Rows[selectedIndex].Selected = true;
// 滚动到选中行,并且当前行也设置为选中行
// 注意,这里单元格必须可视, 即 visible = true;
dataGridView_Ambulance.CurrentCell = dataGridView_Ambulance.Rows[selectedIndex].Cells["车辆编码"];
}
dataGridView_Ambulance.ResumeLayout();