0

Liste_FormにinがありGridView、Close_Formにボタンがあります。

GridviewClose_Formのボタンをクリックしたときに、Liste_Formを更新するにはどうすればよいですか?

または、Liste_Formをリロードします。

4

2 に答える 2

0

Close_Form でイベントを定義します (もちろん、イベントのより適切な名前を検討してください):

public event EventHandler SomethingHappened; 

ボタン クリック イベント ハンドラー内でこのイベントを発生させます。

private void Button_Click(object sender, EventArgs e)
{
    if (SomethingHappened != null)
        SomethingHappened(this, EventArgs.Empty);
}

Liste_Form でこのイベントを購読します。

Close_Form closeForm = new Close_Form();
closeForm.SomethingHappened += Close_Form_SomethingHappened;

このイベント ハンドラーでリストを更新します。

private void Close_Form_SomethingHappened(object sender, EventArgs e)
{
    // refresh GridView
}
于 2012-05-10T15:31:42.840 に答える
0

これを行うにはいくつかの方法があります。私が提案する 1 つの方法は、デリゲートをコンストラクターの 2 番目のフォームに渡すことです。

Form2 myForm2 = new Form2(RefreshGrid); // assign to a Form2 local variable

... Form1 (グリッド所有者) でRefreshGridメソッドを定義した場所:

void RefreshGrid(){
   // perform grid refresh
}

...myForm2ボタンがクリックされたときにアクションを実行できるようにします。

void OnButtonClicked(object sender, EventArgs e){
   refreshAction();
}
于 2012-05-10T15:18:34.280 に答える