C# winform中gridview自动完成的文本框事件
我一直在网上寻找用于文本框的正确事件,以自动生成建议,如google.com,这样我就不必键入整个单元格值来查找我要查找的内容。目前,我有一个按钮,当点击它时,它将根据我的要求过滤网格,而不仅仅是使用文本框进行过滤。我知道有按键、文本更改等,我尝试了不同的事件以查看datagridview是否在我键入时进行过滤。没有成功。按键事件不会在我键入时过滤。textchanged事件不允许我在文本框中键入内容。那么我如何才能做到这一点呢 代码:C# winform中gridview自动完成的文本框事件,c#,sql,winforms,datagridview,C#,Sql,Winforms,Datagridview,我一直在网上寻找用于文本框的正确事件,以自动生成建议,如google.com,这样我就不必键入整个单元格值来查找我要查找的内容。目前,我有一个按钮,当点击它时,它将根据我的要求过滤网格,而不仅仅是使用文本框进行过滤。我知道有按键、文本更改等,我尝试了不同的事件以查看datagridview是否在我键入时进行过滤。没有成功。按键事件不会在我键入时过滤。textchanged事件不允许我在文本框中键入内容。那么我如何才能做到这一点呢 代码: 因为,显然,txtSearch\u TextChanged
因为,显然,
txtSearch\u TextChanged
事件中查询中的where
条件应该是这样的
String query =
"select UserID from JoshTestTable where UserID like '%" +
txtSearch.Text.Trim() + "%' OR FirstName like '%" +
txtSearch.Text.Trim() + "%' OR FirstName like '%" +
txtSearch.Text.Trim() + "%' OR LastName like '%" +
txtSearch.Text.Trim() + "%' OR Email like '%" +
txtSearch.Text.Trim() + "%'";
当您搜索时,单击事件。或者只需从单个点查询数据库,如:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
btnSearch_Click(null, null);
}
更新
您必须用键入的内容填充自定义源。例如,我在示例中使用了姓氏
字段,它对我有效:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
var con = new SqlConnection("{your connection string}");
con.Open();
String query = "select LastName from JoshTestTable where LastName like '%" + txtSearch.Text.Trim() + "%'";
var cmd = new SqlCommand(query, con);
var rr = cmd.ExecuteReader();
var namesCollection = new AutoCompleteStringCollection();
while (rr.Read())
namesCollection.Add(rr["LastName"].ToString());
rr.Close();
con.Close();
txtSearch.AutoCompleteCustomSource = namesCollection;
txtSearch.AutoCompleteMode = AutoCompleteMode.Suggest;
txtSearch.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
我有一个按钮只是为了测试。我不想在文本框上使用自动完成按钮。我尝试了您提出的查询,但在文本框中键入时,它仍然没有过滤。
private void txtSearch_TextChanged(object sender, EventArgs e)
{
var con = new SqlConnection("{your connection string}");
con.Open();
String query = "select LastName from JoshTestTable where LastName like '%" + txtSearch.Text.Trim() + "%'";
var cmd = new SqlCommand(query, con);
var rr = cmd.ExecuteReader();
var namesCollection = new AutoCompleteStringCollection();
while (rr.Read())
namesCollection.Add(rr["LastName"].ToString());
rr.Close();
con.Close();
txtSearch.AutoCompleteCustomSource = namesCollection;
txtSearch.AutoCompleteMode = AutoCompleteMode.Suggest;
txtSearch.AutoCompleteSource = AutoCompleteSource.CustomSource;
}