在WinForms C#中,可以通过以下步骤在DataGridView中使用TextBox进行搜索和过滤:
创建一个TextBox和DataGridView控件。在这里,我们将假设您已经创建了一个名为dataGridView的DataGridView控件和一个名为txtSearch的TextBox控件。
为TextBox控件的KeyPress事件添加事件处理程序。
在事件处理程序中,检查按下的键是否是Enter键。如果是,则执行搜索操作。您也可以使用其他键来触发搜索操作,如单击一个按钮。
在搜索操作中,获取TextBox控件的文本,并使用该文本来筛选DataGridView的数据。
可以使用DataGridView的DefaultView属性来获取数据视图。然后,使用DefaultView.RowFilter属性来设置筛选器。
例如,假设您要搜索名为“John”的人员记录:
(dataGridView.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name LIKE '%{0}%'", txtSearch.Text);
这将使用TextBox控件中输入的文本在DataGridView中筛选出所有名称包含“John”的记录。
最后,使用DataGridView的DataBind方法来刷新控件中的数据。
在搜索操作完成后,将焦点返回到TextBox控件中,以便用户可以轻松进行其他搜索。
txtSearch.Focus();
txtSearch.SelectAll();
这将选中TextBox中的所有文本,并将焦点返回到该控件中。
下面是一个示例事件处理程序,可在TextBox的KeyPress事件中使用:
private void txtSearch_KeyPress(object sender, KeyPressEventArgs e)
if (e.KeyChar == (char)Keys.Enter)
// 获取TextBox的文本
string searchText = txtSearch.Text;
// 使用文本筛选DataGridView的数据
(dataGridView.DataSource as DataTable).DefaultView.RowFilter = string.Format("Name LIKE '%{0}%'", searchText);
// 刷新DataGridView中的数据
dataGridView.DataBind();
// 将焦点返回到TextBox控件中
txtSearch.Focus();
txtSearch.SelectAll();
希望这能帮助您实现在WinForms C#中使用TextBox搜索和过滤DataGridView的功能。