如何通过字符串在dataGridView
上设置选定的行?
示例..
当form_loaded ...我想要dataGridView
选择单元格“LSN”
所以,如果我有一个string text = "LSN"
然后选择该表的单元格值为“LSN”的行。
我通常使用dataGridView1.Rows[3].Selected = true;
在datagridview中设置选定的行..
但如果我不知道行的索引并且只知道字符串,我怎么能这样做呢?
答案 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()