如何根据文本框中的值将特定行聚焦到datagridview中?

时间:2017-10-16 09:59:38

标签: c# .net winforms datagridview

我有一个datagridview dgPersons,其内容与数据库绑定(列:idPersonpersonName)..以相同的形式我有文本框txtCodePerson,{{1 }}

我通过填写文本框并点击txtPersonName将数据添加到数据库中,然后重新打印数据以使新行在datagridview上可见

现在..我想专注于我最近添加的行,从btnSave获取值,并在txtCodePerson

中设置所选行等于该值

代码:

idPerson

但它没有用..添加一行后,所选行自动转到第一行

注意:选择最后一行将无法执行我想要的操作,因为datagridview数据在绑定数据后在String searchValue = txtCodePerson.Text; dgPersons.ClearSelection(); int rowIndex = -1; foreach (DataGridViewRow row in dgPersons.Rows) { if (row.Cells[0].Value.ToString().Equals(searchValue)) { rowIndex = row.Index; break; } } 列上使用alphabitcally

1 个答案:

答案 0 :(得分:2)

您可以找到其对应列值等于指定文本的行。然后将其设置为当前行。

例如,如果您要查找其idPerson列等于txtCodePerson文本的行,则可以使用以下代码:

var searchValue = txtCodePerson.Text;    
var row = dataGridView1.Rows.Cast<DataGridViewRow>()
    .Where(x => !x.IsNewRow)
    .Where(x => ((DataRowView)x.DataBoundItem)["idPerson"].ToString().Equals(searchValue))
    .FirstOrDefault();
this.dataGridView1.CurrentCell = row.Cells[0];