C# 滚动条(如果窗体大于屏幕)

C# 滚动条(如果窗体大于屏幕),c#,winforms,C#,Winforms,我需要一些帮助,我可以告诉一个供应商,在我没有来源的应用程序中开发表单。我们在他们的一个大型WinForm中发现了一个bug,如果它是在1024x768的RDP会话中打开的,那么表单的底部250px左右的位置(约1000px高)是无法访问的 他们很难说没有解决方案,我知道这是胡说八道,但我目前没有一个VisualStudio环境来构建一个概念验证来为自己测试,然后再向他们展示 从其他StackOverflow问题和MSDN文档页面中可以看出,类似于以下内容的内容应该可以解决此问题,因此表单将自动

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

他们很难说没有解决方案,我知道这是胡说八道,但我目前没有一个VisualStudio环境来构建一个概念验证来为自己测试,然后再向他们展示

从其他StackOverflow问题和MSDN文档页面中可以看出,类似于以下内容的内容应该可以解决此问题,因此表单将自动调整到最大可显示高度,然后放入垂直滚动条以允许查看表单的底部。以下几点能达到我的目标吗

public MyTallForm()
{
  InitializeComponent();
  this.AutoScroll = true
  this.AutoSize = true
}
根据需要增大和缩小窗体,以响应窗体内控件的更改

通过显示/隐藏滚动条响应窗体内控件的更改

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


如果表单在RDP会话之间保持打开状态,您可能需要订阅以了解分辨率的更改,或者简单地(不确定它是否已经最大化,切换到最小化或返回到最大化?)如果需要详细的大小,也可以使用。

在表单属性中将
AutoScroll=True
AutoScaleMode设置为Dpi


希望有帮助。

为了澄清,您是说我只需要告诉他们在初始化时设置
this.AutoScroll=true
,以使表单的高度不超过屏幕或RDP会话的可用分辨率?表单不会在会话之间保持打开状态,这样至少可以简化一点。@bdx
WindowState=FormWindowState.Maximized
AutoScroll=true
初始化时“应该”工作如果控件的行为类似于microsoft控件,那么无论是谁否决了这个问题,请详细说明为什么我可以解决这个问题。我没有投反对票,但我能理解为什么有人会投反对票;由于几乎没有关于表单及其控件的实施的信息,因此无法确定这是否可行,或者必须进行什么组合或更改。