见上图。在右侧,我的应用程序在具有正常字体大小(100%)的Windows PC上运行,左侧是相同的应用程序,字体大小设置为125%(这在屏幕首选项中设置)。如您所见,左上角的2个按钮丢失了。
表单属性.AutoScaleMode = Font,理论上应解决这个问题,但事实并非如此。 所有左列按钮都有Anchor = Left |底部。如果我将它设置为Left |顶部,然后底部的2个按钮将不可见。
如何以较少的工作量解决此问题?我有大约100种具有这种行为的形式。
THX
答案 0 :(得分:1)
我无法删除它。在该按钮下,我有一个TextBox,必须在应用程序启动时隐藏。
只是不要对表单的Height属性进行硬编码,将其设置为TextBox的Top属性。或者少一点。另请注意,Height不是正确使用的属性,它受用户为窗口标题字体选择的大小的影响。因此,无论视频适配器的DPI设置如何,您的表单都可能已经出现异常。您想要设置ClientSize属性,如下所示:
protected override void OnLoad(EventArgs e) {
this.ClientSize = new Size(this.ClientSize.Width, SomeTextBox.Top);
base.OnLoad(e);
}
进一步的细节必须在表单的Load事件中完成,如图所示。当它发射时,表格已经重新缩放,因此您可以知道它有多高。构造函数太早了。