最初に、更新コードを独自のメソッドにラップし、次のようにクリックイベントハンドラーメソッドから呼び出します。
private void btnRefresh_Click(object sender, EventArgs e)
{
this.RefreshData();
}
public void RefreshData()
{
GVThesis.DataSource = thesisRepository.GetThesis();
GVThesis.Refresh();
}
次に、Form1から新しいフォーム(Form2)をインスタンス化して起動すると仮定して、Form2のコードに移動し、Form1への参照を受け入れる新しいコンストラクターオーバーロードを作成し、それをプライベート変数に格納します。 :
public partial class Form2 : Form
{
private Form1 frm1;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 otherForm)
{
InitializeComponent();
this.frm1 = otherForm;
}
}
次に、Form2の好きな場所から次のように「更新」を呼び出すことができます。
this.frm1.RefreshData();
編集:
小さなサンプルを作成しましたが、ここにアップロードできません...ただし、VSでのプログラム自体のスクリーンショットと、プログラムを実行して機能を実行した結果のスクリーンショットを次に示します。 ...それがお役に立てば幸いです。
プログラム(小さすぎるように見える場合はビューをズームします)
結果: