質問

子(モーダル)フォームの1つでNotifyIconコントロールを使用していますが、正常に動作しています。 Sバルーンのヒントを期待どおりにハウリングし、マウスイベントなどを処理します。しかし、期待したときに消えません。具体的には、子フォームを終了し、親が制御を取り戻したとき、アイコンはまだ残っています。ツールチップにアクセスできるため、非常に「生きている」ことができます。そのまま。

その後、アプリケーション全体を終了すると、カーソルをポイントするまで画像が残ります。マウスでクリックすると消えます。

どうすれば正常に動作させることができますか? [OK]は通常、悪い言葉です:-0作成したフォームが消えたときに、どのようにすれば消えますか?

これを引き起こしている原因を誰かが説明できますか?

G

編集:閉じたフォームでDisposeメソッドを呼び出すと、これは機能しますが、実際にこれを行う必要がありますか? G

役に立ちましたか?

解決

これが違いを生むかどうかはわかりませんが、子フォームが閉じるときにNotifyIconでDispose()を呼び出していますか?

編集:編集を見ただけです。はい、これが役立つことは驚きではありません。そうするべきです。カバーの下で何かが管理されていないリソースを使用しているので、それをリリースする必要があります。一般に、アプリ内で使用しているIDisposableを実装するものはすべて、自分で処理して破棄してください。

他のヒント

Icon.Visible = false

も機能します。とにかく、Windowsハンドルを破棄するには、 Dispose を呼び出す必要があります。

これ質問も同様です。

あらゆる種類のシャットダウンでクリーンアップを保証しようとする代わりに、システムトレイをクリーンアップする新しいプログラムインスタンスで問題ない場合は、フォローは、通知トレイのクリーンアップをシミュレートします。ユーザーのカーソルを実際に動かす必要のないユーザーマウスオーバークリーンアップをシミュレートするSendMessageソリューションを使用します。

Windows 7マシンでは、名前 Notification Area User Promoted Notification Area に置き換える必要があることに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top