2012-05-08 29 views
1

AddHanlderの代わりにWithEvents宣言を使用する場合、対応するイベントの登録を解除するコードは何ですか?これはWithEvents変数をNothingに設定するだけですか?これで十分ですか(フレームワーク的に)?WithEvents宣言を使用してイベント登録を解除する

+1

静的バインドイベントの登録を解除することはできません。 – adatapost

+0

なぜこれをやろうとしていますか? –

+0

@AVD:なぜあなたはそれをコメントとして伝えますか?これは答えですか? 2つのオブジェクトが永遠にリンクされているということですか? –

答えて

0

私はちょうど短い間だけしか表示されないフォームを持っているとしましょう、しかし、それは私のメインドメインモデルに加入して、変更についての更新を取得します。モデルは私が私のイベントハンドラを解除していない場合、それはこのフォームがガベージコレクトされないになります、外生きる私を意志に参照を持っているので

Private WithEvents _model As WeatherModel 

Public Sub New(model As WeatherModel) 
    _model = model 
End Sub 

Private Sub WeatherModel_Update(sender As Object, e As WeatherUpdateEventArgs) _ 
    Handles _model.WeatherUpdate 

    'Handle updated weather conditions 
End Sub 

:私はこのようなコードを持っているかもしれません。その場合、私はを私のFormClosingイベントハンドラに確実に入れたいと思っています。

オブジェクトとオブジェクトの両方が同じライフタイム(つまり、同時にスコープから外れる)またはアプリケーションの存続期間全体にわたって存在する場合は、それを心配する必要はありません。

関連する問題