通知領域にあるこの Windows フォーム アプリケーションがあります。アイコンをクリックすると前面に表示され、もう一度クリック (またはアプリ X アイコンをクリック) すると元に戻ります。これは、アイコンをクリックして表示するときにウィンドウを常に手前に表示することが重要なタイプのアプリです (オプションですが)。
アイコンを右クリックするとコンテキスト メニューが表示され、[常に手前に表示] オプションを有効にするかどうかを選択できます。アプリケーションが最初に起動すると、アプリケーションの設定が XML ファイルから読み取られます。これが正常に機能していることは 99% で、TopMost
プロパティは適切に読み取られます (および書き込まれます)。
しばらくすると(分、時間、日など、通常は休止状態になり、シャットダウンすることはめったにありません)、TopMost
動作が停止します。オプションを変更しません。オプションの値が変更されているとは思いませんが、通知領域のアイコンをクリックすると、アプリが前面に表示されません。表示されますが、背景にあります (Alt+Tab で表示されます)。本来あるべき「常に一番上」ではありません。コンテキストメニューを表示し、オプションを無効にして(有効になっているため)、再度有効にすると、その後動作し始めます。アプリは「常に一番上」になりました。ただし、しばらくするといつでもこの能力を失う可能性があります。
なぜこれが起こるのか、どのように起こるのか理解できません。誰かが理由を知っていますか?そうでない場合、そのような動作をデバッグするにはどうすればよいですか?
編集:プロパティが変更され
たときに MessageBox を表示するコードを追加して、奇妙な動作に気付くことができるかどうかを確認しましたが、うまくいきませんでした。TopMost
フォームは付いていたので役に立ちませんでしたTopMost = true
が、まだバックグラウンドにありました...