如果表单大于屏幕

时间:2016-08-30 03:22:16

标签: c# winforms

我需要一些帮助,我可以告诉供应商在应用程序中开发表单我没有源代码。我们发现了一个大型Winforms的错误,如果它在1024x768的RDP会话中打开,那么大约1000px高的形式的底部250px左右是无法访问的。

他们很难说没有我认为无用的解决方案,但我目前没有设置Visual Studio环境来构建要测试的概念证明我自己然后再给他们看。

从我从其他StackOverflow问题和MSDN文档页面可以看出,以下内容应解决问题,以便表单自动调整大小到最大可显示高度,然后放入一个垂直滚动条以允许查看底部表格。以下是否会实现我的目标?

public MyTallForm()
{
  InitializeComponent();
  this.AutoScroll = true
  this.AutoSize = true
}

2 个答案:

答案 0 :(得分:3)

AutoSize通过增长和响应来响应表单内部控件的变化。根据需要缩小表格。

AutoScroll通过显示/隐藏滚动条来响应表单内控件的更改。

因此,如果AutoSize处于活动状态,则不会激活AutoScroll,因为表单总是足够大。如果问题来自显示器分辨率太小,则需要AutoScroll。

如果表单在RDP会话之间保持打开状态,您可能需要订阅DisplaySettingsChanged以了解分辨率更改,并且只需Maximize(不确定它是否已经最大化,切换到最小化和如果您需要详细的尺寸,可以回到最大化?)或使用GetWorkingArea

答案 1 :(得分:2)

在表单属性See attached image

中设置AutoScroll = TrueAutoScaleMode to Dpi

希望它有所帮助。