1

フォームが閉じているかどうかを確認するにはどうすればよいですか?

別のフォームを閉じたときにリストビューのアイテムをリロードしたい。
私がやっていることは次のとおりです。

Form1 = ListView
を含むフォーム Form2 = TextBoxes を含むフォーム

  • 新しいフォームを開きます。
  • テキストボックスを介して新しいフォルダーを作成します。
  • Form2 で「追加」を押すと、Form1 の「ListView」をリロードします。

では、どうすればよいのでしょうか。

そして私の下手な英語でごめんなさい:(。

4

5 に答える 5

1

Form1 では、From2 のFormClosedイベントをサブスクライブできます。

于 2012-06-15T20:23:02.787 に答える
1

dot net 1.1以上のものを使用している場合、Closedイベントは廃止されているため、フォームのClosingイベントを処理できます

于 2012-06-15T20:22:57.240 に答える
1

最も簡単な答えは、Form1 でパブリック メソッドを作成することです。それを呼び出してRefreshList()、Form2 のボタン クリック イベントで を呼び出すだけForm1.RefreshListです。簡単なサンプルを次に示します。

フォーム 2:

public Form1 ParentForm { get; set; }

private void Button_Click(object Sender, EventArgs args) {
{
    // After the rest of your handler
    if(ParentForm != null)
        ParentForm.RefreshList();

    Close(); // Close Form2 here, we're done!
}   

フォーム 1:

private void ShowForm2() 
{
    Form2 form2 = new Form2();
    form2.ParentForm = this;
    form2.Show();
}

public void RefreshList() 
{
   // do your refresh here
}

最初は、Form2 を閉じたときにこれを実行したいと言いましたが、後で「Form2 で [追加] を押すと、Form1 の [ListView] をリロードしたい」と言いました。他の人が言及したように、イベントを使用できるため、Closedこのアプローチを使用して2番目のケースに対処しました.

于 2012-06-15T20:27:25.677 に答える
0

FormClosed特定のフォームが閉じられたときに単に反応したい場合は、イベントを処理できます。さらに一歩進めたい場合は、FormClosing必要に応じてフォームを閉じないようにすることもできるイベントがあります。

于 2012-06-15T20:24:38.450 に答える
0

Form1 で Form2 のFormClosingイベントにイベント ハンドラーを追加することは、優れたオプションです。ただし、Form2 がダイアログ ウィンドウの場合は、さらに簡単な解決策があります。つまり、Form2 が表示されているときに Form1 を効果的にロックして無効にしても問題ない場合は、Form2 をダイアログ ウィンドウとして表示するだけです。ダイアログ ウィンドウは同期的に表示されるため、Form2 を表示した直後にリストを更新するだけで、Form2 が閉じられるまでリスト更新コードにヒットしません。例えば:

form2.ShowDialog(this);
updateList();
于 2012-06-15T20:30:25.773 に答える