c#调用表单中的类函数以从中更改为另一个

时间:2014-12-08 05:50:46

标签: c# winforms forms datagridview

我有问题,我需要你的帮助。我在我的c#项目中创建了2个窗体和一个类,我有两个dataGridView。表单1和表单2中的一个具有相同的名称但内容不同。我创建了一个类,在该类中调用了Sqlfunctions,我创建了一个名为Refresh1和Refresh2的SqlConnection和2方法。我可以通过这两行来使用他们所尊重的每一种方法。 在form1

Sqlfunctions.Refresh(this.dataGridView1);
表格2中的

Sqlfunctions.Refresh2(this.dataGridView1);

但是我需要在表单2中调用Sqlfunctions.Refresh(this.dataGridView1)来更新表单1中的dataGridView1。如何在一个表单中调用类方法来更新另一个表单。或者当表单2关闭时,如何在表单1中调用Sqlfunctions.Refresh(this.dataGridView1)。  坦克你先进

这里有更多信息

我使用表单1中的按钮打开表单2,然后更新表单2中的dateGridView。当发生这种情况时,我也想更新表单1中的dateGridView。因为表格2和1中的dategridview使用相同的 数据库。我可以通过调用这个类函数来更新表单1中的datagridview。 Sqlfunctions.Refresh(this.dataGridView1);但我不知道如何在表单2中调用此类函数来更改表单1中的datagridview。甚至如何在表单2关闭时如何在表单1中运行此方法。两种方式使表单1中的datagridview更新。请帮我。我卡住了。

我知道如何在表单2中调用表单1中的方法。但问题是我的方法不在fomr 1中。它在一个名为Sqlfunctions的类中

1 个答案:

答案 0 :(得分:2)

  

我用表单1中的按钮打开表单2

打开Form1时,将Form1设置为Form2的所有者,如下所示:

Form2 f2 = new Form2();
f2.Show(this);

现在在Form2中,您可以将Owner()属性转换为Form1类型并使用它:

// ... from within Form2 ...
Form1 f1 = (Form1)this.Owner;
Sqlfunctions.Refresh(f1.dataGridView1);

但是您需要在Form1中选择dataGridView1并将其Modifiers()属性更改为Public才能使其生效。