StartUp窗体未按设计打开
我在VS2019启动了一个VB.Net项目,起始窗体按设计打开。经过(1)更换了我的PC,(2)把显示器换成了高DPI的屏幕,以及(3)安装了VS2026之后,启动窗体打开时只显示了窗体的中间部分(窗体的上部、下部、左边和右边的部分被截断)。
经过一番研究,我将窗体的“Start Position”属性改为“Manual”,并在窗体的Load事件中添加了以下两行代码:
Me.Size = New Size(2623, 1751)
Me.CenterToScreen()
然而现在窗体打开时,显示的是整个窗体,但看起来像是被最大化,右边的边距填充了剩余的屏幕。
这个启动窗体里有一个Table Layout Panel,以及其他标签和文本框。
我该如何让这个启动窗体按设计尺寸打开?
补充信息:我通过在app.config文件中添加以下内容找到了部分解决方案:
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="PerMonitorV2" />
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</System.Windows.Forms.ApplicationConfigurationSection>
并且从窗体的Load事件中删除了所有代码。我还修改了以下窗体属性:
AutoSize: True
AutoScaleMode: DPI
并把WindowState改回Normal。
现在我的窗体以设计的大小打开,但窗体上的文本看起来很颗粒/模糊,似乎文本没有正确缩放。我在想还需要添加(或删除)一个或多个额外设置,以便在打开时窗体上的所有控件(标签和文本)正确缩放。我已经查阅了许多关于缩放和DPI的文章,但没有运气找到解决办法。如何解决这个问题?
这是一个Windows Forms应用程序(NET Framework),目标框架是10。任何帮助都将不胜感激。
解决方案
对于需要的人,我找到了窗体文本和控件发模糊问题的解决办法。请按照视频所示对app.manifest文件进行修改:
https://www.youtube.com/watch?v=oIxpqXHdZAQ
仅供参考:我在把这些改动应用到另外一个较旧的项目时,先在app.config文件中修复了尺寸问题(如上所述)。令人惊讶的是,在修复尺寸问题之后,文本和控件都非常清晰,甚至不需要对清单文件进行任何修改。