【问题标题】:DatagridView Search Winform - C#DatagridView 搜索 Winform - C#
【发布时间】:2012-01-09 12:32:56
【问题描述】:

我又来这里提问了。我希望有人会努力回答这个问题。

所以我有一个数据网格视图,其中包含来自我的数据库的值。我的表单中有一个搜索按钮,它打开一个新表单,然后有一个文本框,您可以在其中编写要搜索的字符串。问题是,如何才能搜索和更新我的 datagridview。

例如。我的数据网格视图具有以下值:

名称: 亚当刘易斯 亚当·桑德勒, 贾斯汀比伯, 丽贝卡·布莱克

如果我在单击确定后仅搜索“adam”并且第二个表单被关闭 我的数据网格视图将更新,并且只会显示上面有 adam 的名称。

名称: 亚当刘易斯 亚当桑德勒

**我的 Datagrid 的值由数据表绑定。

如果您不理解这个问题,请在下面发表评论,如果有帮助,我会放上我的 gui 的图片。非常感谢 StackOVERFLOW!

看起来像这样...

这是一个视频示例: http://www.youtube.com/watch?v=1OjZwBqVSVI

【问题讨论】:

  • 数据如何绑定到datagridview? LINQ 或数据表或集合。 BindingSource.?

标签: winforms search datagrid datagridview


【解决方案1】:

但您需要帮助的哪一部分?一般的想法是,您希望能够从您的搜索表单中控制您的主表单。你可以这样做:

在你的主窗体中,你做了两件事来实现 UpdateDatatable 并在搜索按钮单击时添加一个事件处理程序:

private void Search_Click(object sender, EventArgs e)
{
       SearchForm mySearchForm = new SearchForm();
       mySearchForm.SetMainForm(this);
       mySearchForm.Show();
}
public void UpdateDatatable(string searchWord)
{
//write your own code to update your datagridview by updating the datatable, filtering the datatable or creating a new datatable by using the parameter searchWord.  I am saying datatable because I assume your datagridview is bound to a datatable.
}

在您的搜索表单中:

public partial class SearchForm : Form
{
    private Form mainForm;
    public SearchForm()
    {
        InitializeComponent();
    }
    public void SetMainForm(Form fromMainForm)
    {
        mainForm = fromMainForm;
    }

    private void txtSearchWord_TextChanged(object sender, EventArgs e)
    {
        mainForm.UpdateDatatable(txtSearchWord.text);
    }
}

希望对你有帮助

【讨论】:

    【解决方案2】:

    这是执行此操作的一种方法:

    • 在父窗体上创建公共属性
    • 此属性应将 set-accessor 设为 public
    • 它应该是您的数据网格的数据源
    • 所有搜索和管理操作都应仅在此属性上进行
    • 例如:- 如果您将网格与数据表绑定,那么在子表单中您可以访问父表单的这个公共属性并对其进行过滤(可能使用 LinQ 或 DataTable Select & Filter 方法)
    • 通过这样做,数据网格将自动更新;如果源被修改
    • 但请确保有可用的重置选项或原始来源(如果适用)

    这是一种粗略的做事方式,不是最佳方式,但它是一种可行的方式。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 2014-12-05
      • 2012-01-15
      • 1970-01-01
      相关资源
      最近更新 更多