以一种形式更新gridview

时间:2011-08-20 08:17:42

标签: c# .net data-binding datagridview

DataGridView我遇到了一个小问题。

我有两种形式,在一种形式中,数据将由DataGridView填充。

当我们点击gridview的列标题时,将打开另一个表格,其中包含相应的列值。

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

我在form1中看到了一些像eventhandler附件这样的细节,但我找不到确切的答案。

2 个答案:

答案 0 :(得分:1)

表单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); 
        }

    }

答案 1 :(得分:0)

通过使用DataGrid,您最有可能像模型一样使用DataTable。我会说像DataTable的参数传递给form2并操纵form2中的SAME DataTable对象,因此对其行和提交的更改将自动反映在form1上。