c# - 在 datagridview C# winform 中搜索

标签 c# winforms search datagridview

我想在 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/

相关文章:

c# - Delphi - 是否有任何等效于 C# 锁的东西?

c# - 带有巨大字符串的文本框被禁用

c# - WinForms:在多行文本框中自动完成

java - 如何在共享一个共同值的多个二维数组之间进行迭代?

c# - 重复获取相同的随机数

c# - 在 Silverlight 中缓存静态类的数据

c# - 如何将示例项目导入 Microsoft Visual Studio 2010

c# - 配置。保存在网络驱动器上

iphone - 如何突出显示图像中的文字?

javascript - 按键检索嵌套对象