如何从另一个表单的按钮单击并关闭第二个表单来恢复最小化的表单

时间:2014-02-12 10:52:55

标签: c# winforms

我在申请表1和表单2中有两个表单。表单1是我将数据网格视图绑定到数据源的主要表单。  在单元格内容点击事件我打开另一种形式我。即形式2通过最小化形式1。

表格2上的

我有1个按钮“取消”。我希望当我单击此按钮时,表单2应该关闭,表单1应该通过刷新其数据源恢复到以前的位置。我想使用表单2进行更新。当我在表单2上单击“确定”时,数据库会更新,当我单击取消时,表单2应该关闭,表单1应该通过刷新其数据源变得可见。数据库已成功更新,但我无法将表单1恢复到其原始位置。

在表单1 OnLoad事件上,我已将数据网格视图绑定到数据源。所以我也希望当表单1恢复时它应该反映我对其所做的更改。

先谢谢。

表单1加载和单元格内容点击的代码是

  private void Viewcashvoucher_Load(object sender, EventArgs e)
    {
        SqlConnection c = new SqlConnection();
        c.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename='D:\\Documents\\Visual Studio 2008\\Projects\\Accounts\\Accounts\\Database1.mdf';Integrated Security=True;User Instance=True";
        c.Open();
        string s = "Select main_key as M_KEY ,vc_type as VT, date as DATE,vc_number as VOUCH_NO,account_n as ACCOUNT,amount as AMOUNT from lgr order by date desc";
        SqlCommand cmd = new SqlCommand(s, c);
        SqlDataReader dr = cmd.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Load(dr);
        dataGridView1.DataSource = dt;
        c.Close();
        dataGridView1.Columns[0].Visible = false;
        dataGridView1.Columns[1].Visible = false;

    }

1 个答案:

答案 0 :(得分:1)

您可以在form1中创建一个公共方法来恢复它并刷新dataGridView数据:

在Form1中创建一个公共方法:

public void RestoreAndRefresh()
    {
        this.Show();
        dataGridView1.DataSource = dt; //Or perform the refresh rutine you want.
    }

在Form2中添加一个Form1类型的变量:

public From1 f1Parent {get; set;}

在Form1中创建Form2时,只需添加以下行:

Form2 f2 = new Form2();
f2.f1Parent = this;
f2Show();

最后,在Form2的“确定”和“取消”按钮中添加以下行:

f1Parent.RestoreAndRefresh();
this.Close();

您需要根据需要调整RestoreAndRefresh方法,但它应该恢复Form1。