У меня есть это приложение Windows Forms, где оно находится в области уведомлений. Щелчок по значку выводит его вперед, повторное нажатие (или нажатие на значок приложения X) возвращает его обратно. Это тип приложения, для которого важно, чтобы окно всегда было сверху, когда оно отображается при нажатии на значок (хотя это необязательно).
Если щелкнуть правой кнопкой мыши значок, откроется контекстное меню, в котором можно включить или отключить параметр «всегда сверху». Когда приложение запускается впервые, настройки приложения считываются из файла XML, и я на 99% уверен, что все работает как надо, свойство TopMost
правильно прочитано (и записано).
Через некоторое время (минуты, часы, дни и т. Д .; я обычно сплю и редко выключаюсь) TopMost
перестает работать . Я не изменяю параметр, я не думаю, что что-то меняет значение параметра, но я щелкаю значок области уведомлений, и приложение не отображается. Он отображается, но он на заднем плане (он отображается на Alt + Tab), он не «всегда сверху», как должен. Я поднимаю контекстное меню, отключаю опцию (потому что она включена) и снова включаю ее, и после этого она начинает работать. Приложение теперь «всегда на высоте». Однако через некоторое время он может потерять эту способность.
Я не могу понять, почему это происходит и как это происходит. У кого-нибудь есть идеи почему? Если нет, то можете ли вы попытаться отладить такое поведение?
EDIT:
Я добавил фрагмент кода, чтобы показать MessageBox, когда свойство TopMost
было изменено, чтобы увидеть, могу ли я заметить какое-либо странное поведение, но это было бесполезно. Это не помогло, потому что форма была с TopMost = true
, но она все еще была на заднем плане ...