从子窗体刷新 DataGridView

     2023-05-07     216

关键词:

【中文标题】从子窗体刷新 DataGridView【英文标题】:Refresh DataGridView from child Form 【发布时间】:2011-12-14 04:30:57 【问题描述】:

让我快速描述一下场景: 1) 在 Form1 中,我有一个名为 dgv_Employee 的 dataGridView 和一个 searchButton。 2)在 Form1 的 pageload 事件中有一个填充 dataGridView 的代码。在这里,我使用 linq to sql 来填充数据。(例如 dgv_Employee.dataSource = Dbmlobject.Employee;) 3) 每当按下 searchButton 时,就会打开一个新的 Form Form2,用户通过提供适当的输入来搜索特定的员工。 4)点击搜索按钮时,我希望将搜索结果显示在dataGridView中并关闭Form2。我已经成功关闭了form2。但是无法从form2刷新form1中的datagridview。

请帮助我,因为我正在尝试 3 天。

【问题讨论】:

将您的问题以适当的可读格式提出。就像在你的问题中使用 标签来换行等等。 【参考方案1】:

您需要使用 Event 和 delegate 来获得您想要的输出。 让我举个例子。

假设有两个表格Form1和Form2。

Form1 包含一个 DataGridView搜索按钮Form2 包含一个名为 ok 的 文本框按钮。 假设 DataGridView 填充了员工姓名,它需要按姓名搜索。 Form2 在按下搜索按钮时打开,然后在 form2 上填写员工姓名后,当按下 ok 按钮时 Form2 关闭,并且在填写员工姓名时过滤数据。 因此,要获得上述结果,您可以执行以下操作:

Form1 代码:

private void btnSearch1_Click(object sender, EventArgs e)

    Form2 frm2 = new Form2();
    frm2.Show();

上面的代码做什么不用解释了。 现在,Form2 的代码:

 public delegate void OnSearch(string employeeName);

public partial class Form2 : Form

    public event OnSearch OnSearchClick;
    protected virtual void FireEvent(string employeeName)
    
        if (OnSearchClick != null)
        
            OnSearchClick(employeeName);
        
    

    public Form2()
    
        InitializeComponent();
    

    private void btnSearch_Click(object sender, EventArgs e)
    
        string employeeName = txtEmp.Text;
        FireEvent(employeeName);

        this.Close();
    

我告诉过你需要使用事件和委托,这里都是form2。 在 Form2 中有一个名为 OnSearchdelegate,其中包含字符串参数。还有一个代表OnSearch事件OnSearchClick。 在这里,代表在课堂上交付。 接下来,创建 FireEvent 函数,该函数在调用此方法时触发 事件 OnSearchClickFireEvent 在 btnSearch 按钮单击时调用。这里employeeName在方法中传递,您可以在方法中传递更多参数或对象,您可以在Form1上获取它,您可以应用过滤器。

现在是时候编辑 Form1 的代码了:

    private void btnSearch1_Click(object sender, EventArgs e)
    
        Form2 frm2 = new Form2();
        frm2.OnSearchClick += new OnSearch(frm2_OnSearchClick);
        frm2.Show();
    

    void frm2_OnSearchClick(string employeeName)
    
        MessageBox.Show(employeeName);
    

如上所示编辑 From1 的代码,现在当您编写 frm2. 时,智能感知会为您提供名为 OnSearchClick 的事件,然后选择该事件,然后在一个空格之后键入 += ,然后按 Tab。如您在上面的代码所示,它将生成 frm2_OnSearchClick 事件。 将 Form2 中的所有参数传递给 Form1(我只传递了一个)并编写逻辑以在 frm2_OnSearchClick 事件中绑定 DataGridView。 现在,每当您点击 搜索按钮(位于 Form2) 时,它都会触发 frm2_OnSearchClick 事件(位于 Form1) 并且 DataGridView 将刷新。

【讨论】:

【参考方案2】:
 Form2 form2 = new Form2();

 //add handler to catch when child form is closed    
 form2.FormClosed += new FormClosedEventHandler(form2_FormClosed);
 form2.ShowDialog();


private void form2_FormClosed(object sender, FormClosedEventArgs e)           
              
 //when child form is closed, this code is executed   
// Bind the Grid view       
 PopulateControls();                                  

【讨论】:

【参考方案3】:

在方法上将您的绑定添加到网格,以便在您的事件的任何地方轻松调用我。

private void BindTogrid()

 //call again you binding
dgv_Employee.dataSource = Dbmlobject.Employee; 

然后根据你的

searchButton click()

Form2 form2 = new Form2();
form2.ShowDialog(); //Show Form2
 BindTogrid(); //Execute if Dialog has been closed;

希望对您有所帮助。

问候

【讨论】:

【参考方案4】:

每当需要刷新网格时,只需重新分配数据源。

【讨论】:

关闭子窗体时如何刷新datagridview?

】关闭子窗体时如何刷新datagridview?【英文标题】:Howtorefreshdatagridviewwhenclosingchildform?【发布时间】:2011-01-2415:14:50【问题描述】:我的主窗体上有一个dgv,有一个按钮可以打开另一个窗体以将一些数据插入到与dgv绑定的数据源... 查看详情

刷新datagridview vb.net中的数据

】刷新datagridviewvb.net中的数据【英文标题】:Refreshdataindatagridviewvb.net【发布时间】:2016-05-2009:27:25【问题描述】:在我的主窗体中,我有一个刷新按钮。问题是当我尝试点击它时,它不会刷新什么也没发生。下面是我的刷新按... 查看详情

值更改时绑定到 BindingList 的 DataGridView 不刷新

】值更改时绑定到BindingList的DataGridView不刷新【英文标题】:DataGridViewboundtoBindingListdoesnotrefreshwhenvaluechanged【发布时间】:2011-03-2109:23:07【问题描述】:我有一个绑定到BindingList(C#Windows窗体)的DataGridView。如果我更改列表中某... 查看详情

DevExpress TabbedView : 从子窗体创建子窗体

】DevExpressTabbedView:从子窗体创建子窗体【英文标题】:DevExpressTabbedView:CreateChildFormfromaChildForm【发布时间】:2015-09-0804:43:50【问题描述】:我正在使用DX15.1,我正在尝试从子表单创建一个新选项卡。所以,基本上,我有一个名为... 查看详情

从子窗体调用主窗体

】从子窗体调用主窗体【英文标题】:CalltoMainformfromSubform【发布时间】:2012-11-2914:12:11【问题描述】:我有一个访问数据库,它有一个带有VBA填充日期的表单。每次表单加载时,日期都会自动填充到标有“日期”的文本框中。... 查看详情

如何将值从子窗体传递回父窗体?

】如何将值从子窗体传递回父窗体?【英文标题】:HowdoIpassavaluefromachildbacktotheparentform?【发布时间】:2010-09-2118:56:01【问题描述】:如何将子窗体的值传递回父窗体?我有一个字符串,我想传回给父级。我使用以下方式启动了... 查看详情

主窗体记录更改时从子窗体移动焦点

】主窗体记录更改时从子窗体移动焦点【英文标题】:Movefocusfromsubformwhenmainformrecordchanged【发布时间】:2015-11-1417:22:06【问题描述】:我有一个Access2010表单,它由一个单记录父表单和一个连续子表单组成。表格后面的表格之间... 查看详情

在另一个对话框将数据插入 DB 后刷新 DataGridView

】在另一个对话框将数据插入DB后刷新DataGridView【英文标题】:RefreshDataGridViewafterdatainsertedinDBbyanotherdialog【发布时间】:2012-06-1721:43:56【问题描述】:在我的Winforms应用程序中,我有一个主窗体,其中DataGridView绑定到数据库实体... 查看详情

如何在 Windows Forms 2.0 中从子窗体关闭父窗体?

】如何在WindowsForms2.0中从子窗体关闭父窗体?【英文标题】:HowdoIcloseaparentFormfromchildforminWindowsForms2.0?【发布时间】:2010-09-0717:05:54【问题描述】:我需要从Windows应用程序的子表单中关闭父表单。最好的方法是什么?【问题讨论... 查看详情

从子窗体访问去记录

】从子窗体访问去记录【英文标题】:accessgotorecordfromsubform【发布时间】:2017-07-1810:16:05【问题描述】:我在Access2010中有一个联系人数据库。我制作了一个显示所有联系人信息的表单,但我需要一种在联系人之间轻松导航的方... 查看详情

将数据从子窗体输入到表格

】将数据从子窗体输入到表格【英文标题】:Enterdatafromsubformtotable【发布时间】:2016-08-1405:11:35【问题描述】:我在2013版MSAccess中创建了一个子表单。我可以从表单中插入数字,但我无法插入文本字符串和重复的行项目。如何插... 查看详情

c#如何使用委托触发另一个窗体的按钮刷新另一窗体

form1中有一个datagridview里面有数据点击新增按钮打开form2,里面对数据进行添加等操作,想同时刷新form1的数据,怎么处理form1中有刷新按钮,怎么触发或有其他处理方法使用委托,在form1中声明委托,并定义委托函数,函数的其... 查看详情

从子视图刷新 UIView

】从子视图刷新UIView【英文标题】:RefreshUIViewfromSubview【发布时间】:2011-11-1916:20:54【问题描述】:在我的通用应用程序中,我在UIScrollView中有一个UIControl视图。按下设置按钮时,我添加另一个视图作为子视图,如下所示:SetupC... 查看详情

从子窗口添加数据后,silverlight 数据网格刷新

】从子窗口添加数据后,silverlight数据网格刷新【英文标题】:silverlightdatagridrefreshafteradddatafromchildwindow【发布时间】:2016-04-2904:23:33【问题描述】:我想在从子窗口添加数据后刷新我的数据网格。下面是我的Home.xaml.cspublicpartialc... 查看详情

使用两个windows窗体datagridview控件创建一个主/从窗体

使用DataGridView控件的一种最常见方案是“主/详细信息”窗体,这样的窗体可显示两个数据库表之间的父/子关系。如果选择主表中的行,将导致以相应的子数据来更新详细信息表。主/详细信息窗体很容易实现,这需要使用DataGridV... 查看详情

winform中(当数据库的数据有变化时)datagridview刷新的问题

B用户查询datagridview中显示人员信息,当A用户在同时登录这个程序而更改了某人员的信息时,B用户怎样也能在他当前查询界面不关闭的情况下看到更改的信息?如果用timer控件,怎么判断数据变化了再刷新,而不是隔几秒窗体就... 查看详情

从子窗口刷新 WPF 页面

】从子窗口刷新WPF页面【英文标题】:RefreshaWPFpagefromachildwindow【发布时间】:2013-08-1210:01:56【问题描述】:在C#WPF我有一个窗口使用this.WorkingFrame.Navigate(Page1);托管页面现在在第1页我有一个listview。在第1页上,您可以双击listview... 查看详情

winformdatagridview绑定后一直刷新

...Copyright©1999-2020,CSDN.NET,AllRightsReserved打开APP斯内科关注DataGridView使用数据源绑定,每隔几秒钟就刷新数据原创2021-11-0723:02:55斯内科码龄11年关注我们测试使用内存数据表来绑定DataGridView,每隔5秒钟就刷新一次数据绑定。新建win... 查看详情