【问题标题】:Form maximizes when seen via Remote Desktop通过远程桌面查看时表单最大化
【发布时间】:2013-06-11 01:55:34
【问题描述】:

我为某种机器编写了一个 HMI(人机界面)程序。 该程序在带有“Windows Standard Embedded 7”的触摸面板上运行。 我想它是 Windows 7 的嵌入式版本对我的问题没有影响。

  • 我的程序主窗体的WindowState设置为Normal,大小设置为匹配触摸屏的分辨率(1280x800)。
  • FormBorderStyle 设置为None
  • StartPosition 设置为 CenterScreen

问题是:

  • 直接在触摸屏上启动程序时,程序会按原样显示,从上/左到右/下完全填满屏幕。还行吧!

  • 当程序未运行并且您通过远程桌面登录到触摸面板(使用更大的屏幕,比如 1920x1200),然后启动程序(通过 rdp 会话)时,程序也启动为预期,显示在屏幕中间,尺寸为 1280x800。还行吧!

  • 当通过 rdp 登录时,程序已经在运行,程序显示为最大化,填满整个屏幕 (1920x1200)。这不好,因为我的程序的整个布局都是为 1280x800 制作的!

有谁知道我的程序为什么会这样,或者这个问题与 rdp 会话有什么关系?

【问题讨论】:

  • 有趣的测试:当您 RDP 到已经运行的应用程序时,SizeChanged 事件是否会触发?如果是这样..您可以订阅并重新调整表格大小..
  • 欢迎来到 StackOverflow!我冒昧地修改了你的帖子,以便它更好地使用格式化的东西。您可以通过单击我名字上方的时间来查看我修改的内容。如果您觉得您的帖子更好,或者您想进一步改进/更改它,请点击左侧的edit 按钮进行修改。
  • 谢谢你的cmets/欢迎。
  • 哦,点击 ENTER 立即发表评论...我将 rdp 连接的速度设置从低带宽更改为更高,现在问题消失了。不幸的是,我无法重现该问题,因为将带宽再次设置为低时不会再次发生。我将在到达触摸面板后立即重新启动它(面板安装在其他位置)以尝试重现该问题。
  • 您是否尝试过在本地运行程序并在它已经运行时更改桌面分辨率?出现问题了吗?

标签: c# winforms remote-desktop


【解决方案1】:

这可能是由于系统试图保持相对于屏幕边框的窗口布局。我已经在一些应用程序中注意到了这一点。如果应用程序未最大化但在 RDPing 后以更大的分辨率占用 100% 的屏幕宽度,它会保持 100%。

如果您想防止这种情况发生,您可以尝试在 Form 构造函数中将 MinimumSizeMaximumSize 属性设置为 1280x800。它应该工作

【讨论】:

  • 我会让线程打开,直到我完成我正在处理的当前项目,因为我为这个项目使用相同的程序库。如果我没有再次看到问题,它一定已经通过例如解决了。 Visual Studio 或 Windows 的更新。顺便说一句,有趣的 cmets。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-03
  • 2016-09-17
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
  • 2011-06-20
相关资源
最近更新 更多