1

FormClosingイベントをサブスクライブするWinFormがあります。Xをクリックすると、イベントがトリガーされます。ただし、WinFormでClose()を実行すると、イベントはトリガーされません。このWinFormは表示されません。それが理由でしょうか?

イベントハンドラーは、(Onloadではなく)WinFormのコンストラクターでサブスクライブされるため、登録されます。

4

1 に答える 1

4

これは仕様によるものです。FormClosing は、実際にフォームを表示した場合にのみ発生します。または、より技術的には、ネイティブの Windows ウィンドウが作成されたときです。Show() を一度も呼び出していない場合、Close() は何もしません。クラス オブジェクトを作成しただけで、FormClosing はデストラクタの代わりにはなりません。

于 2012-12-14T10:40:06.743 に答える