Форма максимизируется при просмотре через удаленный рабочий стол

Я написал программу HMI (человеко-машинный интерфейс) для какой-то машины. Программа работает на сенсорной панели с ОС Windows Standard Embedded 7. Думаю, для моей проблемы нет разницы, что это встроенная версия Windows 7.

  • WindowState основной формы моей программы установлен на Normal, а размер установлен в соответствии с разрешением сенсорной панели (1280x800).
  • FormBorderStyle установлен на None.
  • StartPosition установлен на CenterScreen.

Проблема в следующем:

  • при запуске программы прямо на сенсорном экране программа отображается должным образом, заполняя экран полностью сверху / слева направо / снизу. Хорошо!

  • когда программа НЕ запущена, и вы входите на сенсорную панель через удаленный рабочий стол (с большим экраном, скажем, 1920 x 1200), а ЗАТЕМ запускаете программу (через сеанс rdp), программа также запускается, как ожидалось, показано в середине экрана размером 1280x800. Хорошо!

  • при входе в систему через rdp, КОГДА ПРОГРАММА УЖЕ ЗАПУСКАЕТСЯ, программа отображается в развернутом виде, занимая весь экран (1920x1200). Это нехорошо, так как вся верстка моей программы рассчитана на 1280x800!

Кто-нибудь знает, почему моя программа ведет себя так, или проблема как-то связана с сеансом rdp?


person JohnSaps    schedule 22.01.2013    source источник
comment
Интересный тест: срабатывает ли событие SizeChanged при подключении RDP к уже запущенному приложению? Если да .. вы можете подписаться и изменить размер формы ..   -  person Simon Whitehead    schedule 22.01.2013
comment
Добро пожаловать в StackOverflow! Я взял на себя смелость немного изменить ваш пост, чтобы он лучше использовал элементы форматирования. Вы можете увидеть, что я изменил, щелкнув время над моим именем. Если вы считаете, что ваш пост был лучше или если вы хотите его улучшить / изменить, нажмите кнопку edit слева, чтобы изменить его.   -  person Default    schedule 22.01.2013
comment
Спасибо за комментарии / добро пожаловать.   -  person JohnSaps    schedule 22.01.2013
comment
О, нажатие ENTER сразу же отправляет комментарий ... Я изменил настройку скорости соединения rdp с низкой ширины полосы на более высокую, и на данный момент проблема исчезла. К сожалению, я не могу воспроизвести проблему, так как она не возникает повторно при установке низкого значения ширины полосы. Я выключу и снова включу сенсорную панель, как только доберусь до нее (панель установлена ​​в другом месте), чтобы попытаться воспроизвести проблему.   -  person JohnSaps    schedule 22.01.2013
comment
Я только что перезапустил панель, но проблема больше не проявляется. Немного странно, потому что проблема существует уже довольно давно. Я не могу воспроизвести проблему при выполнении rdp с других компьютеров, кроме моего. Можно ли какое-то время держать вопрос открытым в надежде, что проблема повторится?   -  person JohnSaps    schedule 22.01.2013
comment
Это происходит с другими приложениями или только с вашим? Почему бы не сделать так, чтобы ваше приложение поддерживало разрешение, отличное от 1200 x 800?   -  person Ryan Gates    schedule 10.04.2013
comment
Вы пробовали запустить программу локально и изменить разрешение рабочего стола, пока она уже запущена? Проблема возникает?   -  person Louis Ingenthron    schedule 17.04.2013
comment
Вы можете попробовать изменить его размер до System.Windows.Forms.Screen.PrimaryScreen.WorkingArea вместо того, чтобы увеличивать его до максимума. Это может быть полное исправление или, если вы действительно хотите его максимизировать, может направить вас в правильном направлении.   -  person SimpleVar    schedule 23.04.2013
comment
Вы пробовали установить максимальную ширину и высоту формы, а также ширину и высоту? Они должны сохранять правильный размер формы, что бы ни случилось.   -  person Jaska    schedule 20.05.2013
comment
Я только что узнал, что проблема также иногда возникает, когда программа запускается на ноутбуке, а затем закрывается и открывается экран (крышка ноутбука). Все еще расследуем ...   -  person JohnSaps    schedule 06.09.2013
comment
И событие Resize запускается, когда это происходит ...   -  person JohnSaps    schedule 10.10.2013


Ответы (1)


Вероятно, это вызвано тем, что система пытается сохранить расположение окон относительно границ экрана. Я замечал это несколько раз с некоторыми приложениями. Если приложение не развернуто, но занимает 100% ширины экрана после RDPing с большим разрешением, оно остается на 100%.

Если вы хотите предотвратить это, попробуйте установить свойства MinimumSize и MaximumSize формы на 1280x800 в конструкторе формы. Он должен работать

person Peuczynski    schedule 10.06.2013
comment
Я позволю потоку открыться, пока я не закончу текущий проект, над которым я работаю, поскольку я использую ту же программную базу для этого проекта. Если я снова не увижу проблему, значит, она должна быть решена, например, обновление Visual Studio или Windows. Кстати, интересные комментарии. - person JohnSaps; 19.06.2013