我有一个datagridview,其内容与数据库绑定。有3列。姓名,地址,手机。我有一个文本框,用于datadridview Name列的过滤数据。如果我写" Sa"在文本框中gridview焦点将在Sa .......除了" Sa"所有数据都将出现在datagridview中,但重点放在" Sa ..."。我怎么能这样做?
答案 0 :(得分:0)
您可以尝试以下代码..
我们在这里做的是每当用户在文本框中键入内容时,我们遍历列索引(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;
}
}
}
答案 1 :(得分:0)
试试这个,在文本框中更改值时可能会更快。
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
将滚动网格以在网格显示区域的第一行显示该行。