DatagridView搜索Winform - C#

时间:2011-11-30 08:41:57

标签: winforms search datagrid datagridview

我在这里再次提问。我希望有人能够回答这个问题。

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

代表。我的datagrid视图具有以下值:

名: 亚当刘易斯, 亚当·桑德勒, 贾斯汀比伯, 丽贝卡黑色

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

名: 亚当刘易斯, 亚当·桑德勒

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

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

它看起来像这样...... enter image description here enter image description here

以下是视频示例: http://www.youtube.com/watch?v=1OjZwBqVSVI

2 个答案:

答案 0 :(得分:3)

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

在您的主窗体中,您可以执行两项操作实现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);
    }
}

希望这有帮助

答案 1 :(得分:0)

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

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

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

希望这有帮助。