按单元格的值设置选定的行datagridview

时间:2015-06-25 16:13:51

标签: c# winforms

如何通过字符串在dataGridView上设置选定的行?

示例..

enter image description here

当form_loaded ...我想要dataGridView选择单元格“LSN”

所以,如果我有一个string text = "LSN"

然后选择该表的单元格值为“LSN”的行。

我通常使用dataGridView1.Rows[3].Selected = true;在datagridview中设置选定的行..

但如果我不知道行的索引并且只知道字符串,我怎么能这样做呢?

3 个答案:

答案 0 :(得分:3)

您必须遍历DataGridView的每一行,直到找到所需的值。然后,您可以选择行并突破循环。

foreach(DataGridViewRow row in dataGridView1.Rows)
{
    // 0 is the column index
    if (row.Cells[0].Value.ToString().Equals("LSN"))
    {
        row.Selected = true;
        break;
    }
}

我还没有测试过这个例子,但它应该给你正确的想法。

答案 1 :(得分:2)

请尝试以下代码......

string txtSearchValue="LSN";
int rowIndex = -1; 

DataGridViewRow row = dgv.Rows.Cast<DataGridViewRow>()
    .Where(r=>r.Cells["SystemId"].Value.ToString().Equals(txtSearchValue))
    .First();
rowIndex = row.Index; 

dataGridView1.Rows[rowIndex].Selected = true;

没有LINQ:

foreach(DataGridViewRow row in DataGridView1.Rows)
{
    if(row.Cells[1].Value.ToString().Equals(txtSearchValue))
    {
        rowIndex = row.Index;
        break;
    }
}

答案 2 :(得分:1)

Linq也许?

How can I use LINQ to find a DataGridView row?

dataGridView1.Rows

  

dataGridView1.Rows.Cast<DataGridViewRow>().Where(x => x.Kode == "LSN").FirstorDefault()