2013-01-22 55 views
7

我已經爲某種機器編寫了HMI(人機界面)程序。 程序在帶有「Windows Standard Embedded 7」的觸摸屏上運行。 我想這是我的問題沒有區別,這是Windows 7中的嵌入式版本當通過遠程桌面看到時最大化窗體

  • 我的程序的主要形式的WindowState設置爲Normal,並將大小設置相匹配的分辨率觸摸面板(1280x800)。
  • FormBorderStyle設置爲None
  • StartPosition設置爲CenterScreen

的問題是:

  • 直接在程序被示出,因爲它應該在觸摸屏上開始該程序時,從頂部/左到右/底部完全填充屏幕。還行吧!

  • 當程序沒有運行,並且您登錄到通過遠程桌面觸控面板(具有更大的屏幕,讓我們說1920×1200),然後啓動該程序(通過RDP會話)的計劃也開始預期,顯示在屏幕中間,大小爲1280x800。還行吧!

  • 當通過rdp登錄時當程序已經運行時程序顯示爲最大化,填滿整個屏幕(1920x1200)。這是不好的,因爲我的程序的整個佈局是爲1280x800!

有沒有人有一個想法,爲什麼我的程序行爲像這樣,或者是問題以某種方式與rdp會話相關?

+0

有趣的測試:當你的RDP到應用程序已經運行時,'SizeChanged'事件是否會觸發?如果是這樣..你可以訂閱並重新調整表格大小.. –

+6

歡迎來到StackOverflow!我冒昧地修改了你的文章,以便更好地使用格式化的東西。點擊我名字上方的時間,可以看到我修改的內容。如果您覺得自己的帖子比較好,或者想要進一步改進/更改,請點擊左側的編輯按鈕進行修改。 – Default

+0

感謝您的意見/歡迎。 – JohnSaps

回答

1

這可能是由系統試圖保持相對於屏幕邊界的窗口布局造成的。我已經注意到這幾次與一些應用程序。如果應用程序沒有最大化,但在更高分辨率的RDP後獲得100%的屏幕寬度,則它保持100%。

如果你想防止這種情況,你可以嘗試在窗體構造函數中設置MinimumSizeMaximumSize的形式到1280x800。它應該工作

+0

由於我寫了這篇文章,問題還沒有出現! – JohnSaps

+0

我會讓線程打開,直到完成我正在處理的當前項目爲止,因爲我爲此項目使用了相同的程序庫。如果我再沒有看到問題,它必須通過例如Visual Studio或Windows的更新。有趣的評論的方式。 – JohnSaps

相關問題