我想在 DataGridView
中放置一个搜索选项,即用户在 TextBox
中键入字符串或 int 以及 DataGridView
应该的类似记录被突出显示。我尝试使用 KeyPress
事件但没有成功。
if (Char.IsLetter(e.KeyChar))
{
for (int i = 0; i < (dgemployee.Rows.Count); i++)
{
if (dgemployee.Rows[i].Cells["Employee"].Value.ToString().
StartsWith(e.KeyChar.ToString(), true,
CultureInfo.InvariantCulture))
{
dgemployee.Rows[i].Cells[0].Selected = true;
return;
}
}
实际上,我需要搜索整个 DataGridView
,而不仅仅是一列和一行。那么有什么最佳解决方案吗?
最佳答案
如果您的 DataGridView 绑定(bind)到 DataTable 或 DataView,您可以这样做:
创建一个 BindingSource并使 BindingSource.DataSource
成为您的 DGV 当前正在使用的 Datatable 或 DataView。然后将您的 DataGridView.DataSource
设置为 BindingSource。然后,您可以使用 BindingSource.Filter
属性通过将 BindingSource.Filter
设置为您的查询字符串来查询您的数据源,这将自动过滤 DGV。您可以找到语法 here - 它与基本的 SQL 查询非常相似,只是您只能在字符串的开头和结尾使用通配符。
关于c# - 在 datagridview C# winform 中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6210781/