【问题标题】:set selected row datagridview by cell's value通过单元格的值设置选定的行datagridview
【发布时间】:2015-06-25 16:13:51
【问题描述】:

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

例子..

当 form_loaded...我希望选择带有单元格“LSN”的dataGridView

如果我有string text = "LSN"

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

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

但是如果我不知道行的索引并且只知道一个字符串,我该怎么做呢?

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案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;
          }
      }
      

      【讨论】:

        【解决方案3】:

        Linq 可能吗?

        How can I use LINQ to find a DataGridView row?

        dataGridView1.Rows

        dataGridView1.Rows.Cast&lt;DataGridViewRow&gt;().Where(x =&gt; x.Kode == "LSN").FirstorDefault()

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-12-05
          • 1970-01-01
          • 2012-03-15
          • 1970-01-01
          • 1970-01-01
          • 2018-01-01
          相关资源
          最近更新 更多