如何聚焦datagridview中的特定行
本文关键字:datagridview 何聚焦 聚焦 | 更新日期: 2023-09-27 18:15:43
我有一个datagridview内容绑定从数据库。有3列。姓名、地址、手机。我有一个文本框的datadridviewname列的过滤数据。如果我在文本框中写入"Sa",gridview的焦点将在Sa....... .除"Sa"外,所有数据都将呈现在datagridview中,但重点放在"Sa…"上。我该怎么做呢?
您可以尝试下面的代码…
我们在这里做的是当用户在文本框中输入一些东西时,我们迭代遍历列索引(0)的每个单元格值,当找到匹配的值时,我们突出显示整个行。
private void textBox1_TextChanged(object sender, EventArgs e)
{
//Use could set the SelectionMode within FormLoad as well.
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.ClearSelection();
foreach (DataGridViewRow item in dataGridView1.Rows)
{
if (item.Cells[0].Value.ToString().Equals(textBox1.Text))
{
item.Selected = true;
}
}
}
试试这个,当在文本框中更改值时可能会更快。
int j=dgv.Rows.Count;
for (int i = 0; i < dgv.Rows.Count; i+= 2)
{
if (dgv.Rows[i].Cells["MyField"].Value.ToString().Contains(txtSearch.Text))
{
dgv.CurrentCell = dgv.Rows[i].Cells["MyField"];
dgv.FirstDisplayedScrollingRowIndex = i;
break;
}
if (j > -1 && dgv.Rows[j].Cells["MyField"].Value.ToString().Contains(txtSearch.Text))
{
dgv.CurrentCell = dgv.Rows[j].Cells["MyField"];
dgv.FirstDisplayedScrollingRowIndex = j;
break;
}
j--;
}
FirstDisplayedScrollingRowIndex
将滚动网格以在网格显示区域的第一行显示该行。