在一个表单中更新gridview

本文关键字:表单 更新 gridview 一个 | 更新日期: 2023-09-27 18:06:16

我有一个小问题与DataGridView。

我有两个表单,在一个表单中,数据将由DataGridView填充。

当我们点击gridview的列标题时,另一个表单将被打开,并带有相应的列值。

我已经对form2中的数据进行了一些操作,所以在关闭form2之前,我想用这些细节更新form1 gridview…

我看到了一些细节,如eventhandler附件在form1,但我没有找到一个确切的答案。

在一个表单中更新gridview

表格2代码

    public event EventHandler<UpdatedEventArgs> updateEvent;
    public class UpdatedEventArgs : EventArgs
    {
        public string SomeVal { get; set; } // create custom event arg for your need
    }
    protected virtual void OnFirstUpdateEvent(UpdatedEventArgs e)
    {
        if (updateEvent != null)
            updateEvent(this, e);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        UpdatedEventArgs eventData = new UpdatedEventArgs(); 
        eventData.SomeVal = "test"; // set update event arguments, according to your need
        OnFirstUpdateEvent(eventData);
    }
    public Form2()
    {
        InitializeComponent();
    }

表格1代码

    public Form1()
    {
        InitializeComponent();
        Form2 form2 = new Form2();
        form2.updateEvent += new EventHandler<Form2.UpdatedEventArgs>(form2_updateEvent); // create event handler to update form 1 from form 2
        form2.Show();
    }
    void form2_updateEvent(object sender, Form2.UpdatedEventArgs e)
    {
        if (e != null && e.SomeVal != null)
        {
            // Do the update on Form 1 
            // depend on your event arguments update the grid  
            //MessageBox.Show(e.SomeVal); 
        }
    }

通过使用DataGrid,您很可能像使用模型一样使用DataTable。我会说传递像参数一样的数据表到form2,并在form2中操作相同的数据表对象,因此对其行和提交的更改将自动反映在form1上。