相关文章推荐
热心肠的烈酒  ·  Maven ...·  1 年前    · 

winforms c# how to search filter display datagridview textbox keypress

在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的功能。

  •