Обнаружился баг в реализации состояний окон в дотнете. При выставлении WindowState = FormWindowState.Normal; на самом деле происходит ShowWindow из WinAPI с флагом Restore. Т.е. если до минимизации окно было в состоянии Maximized, а вы программно из состояния минимизации (например, из system tray) поднимаете его выставлением в Normal происходит сбой. Внутренняя система отслеживания состояний путается и в результате запоминает координаты окна в минимизированном режиме (-32000, -32000, 164, 27) как координаты в нормальном режиме. После этого происходит проблема Restore.
Чтобы этого избежать, в OnSizeChanged (или другом удобном месте) запоминайте последнее не-Minimized состояние и в случае программного восстановления окна используйте именно его.
... << RSDN@Home 1.1.4 beta 3 rev. 192>>
Здравствуйте, orangy, Вы писали:
O>Обнаружился баг в реализации состояний окон в дотнете.
Спасибо. Но весьма странно: неужели такой простой глюк, который должен проявляться весьма часто, все это время уходил от внимания?
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, Alex Reyst, Вы писали:
O>>Обнаружился баг в реализации состояний окон в дотнете.
AR>Спасибо. Но весьма странно: неужели такой простой глюк, который должен проявляться весьма часто, все это время уходил от внимания?
Да вроде не уходил... AVK говорит, что про это всем известно уже года два
По мне так, здесь проблема именно в нетривиальности повторения. Чтобы его словить нужно развернуть окно, затем свернуть окно, а затем программно выставить WindowState = Normal. После этого окно станет Maximized, а при попытке сделать ему Restore — вот этот самый глюк и вылезет. Согласись — не каждый день ты такую последовательность совершаешь
Отсюда, кстати и факт, что чаще всего вылазит этот глюк при сворачивании в трей — там приходится восстанавливать программно.
Здравствуйте, orangy, Вы писали:
O>Да вроде не уходил... AVK говорит, что про это всем известно уже года два
Во всяком случае, это баг есть в нынешнем янусе.
... << RSDN@Home 1.1.4 beta 2 >>
Здравствуйте, Блудов Павел, Вы писали:
O>>Да вроде не уходил... AVK говорит, что про это всем известно уже года два
БП>Во всяком случае, это баг есть в нынешнем янусе.
Уже нетуАвтор: orangy
Дата: 12.10.04
... << RSDN@Home 1.1.4 beta 3 rev. 192>>
Здравствуйте, Блудов Павел, Вы писали:
БП>Во всяком случае, это баг есть в нынешнем янусе.
Еще в Expresso.
... << RSDN@Home 1.1.4 beta 3 rev. 190>>