2016-04-05 5 views
1

C#とWinFormsのを使用して、私はボタンのクリックで様々な形を呼び出し、基本メニューを持っている:Form.Close()を呼び出す必要がありますか、それとも私のために処理されていますか?

private void Some_Button_Click(object sender, EventArgs e) 
     { 
      var someForm = new SomeForm(); 

      someForm.MdiParent = MenuForm; 
      someForm.Show(); 
      someForm.BringToFront(); 
     } 

私の関心は、メモリuseageです。フォームを閉じるためにユーザーが「x」をクリックすると、ウィンドウが閉じるときに既にForm.Close()が呼び出されていますか?または、明示的にForm.Close()を呼び出すためにイベントを作成する必要はありますか?

+2

いいえ。コードを通して 'Form'を手動で閉じるのでない限り、' Form.Close() 'を呼び出す必要はありません。 – EvilTak

+0

従来の.NETの方法では、クラスのClose()メソッドはDispose()を呼び出します。これはFormクラスにも当てはまります。場合によっては、Show()の代わりにShowDialog()を使用するときにDispose()を呼び出す必要があります。通常、ShowDialog()呼び出しの後でダイアログ結果を取得するため、自動にすることはできません。そして、* using *ステートメントを使って正しく実行します。ここのケースではありません。 –

答えて

2

フォームを閉じるためにユーザーが「x」をクリックすると、ウィンドウが閉じるときにForm.Close()が既に呼び出されていますか?

いいえ、FormClosingイベントが発生します。 Form.Closeにフォームを閉じるように指示します(この場合もFormClosingイベントが発生します)。

Closeは、コマンドです。コマンドに応答してFormClosingと呼びます。

+0

私のために十分です。どうもありがとう! – Kiel

関連する問題