You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.Net启动窗体在VS2026中无法按设计尺寸正常显示的问题咨询

解决VB.NET启动窗体无法按设计尺寸正常显示的问题

问题根源

新电脑的DPI缩放比例与旧电脑不一致,VS2026对WinForms高DPI的处理逻辑和VS2019存在差异,导致启动窗体布局被错误裁切;手动硬写固定尺寸的操作忽略了DPI适配,反而引发窗体拉伸/空白问题。

解决方案

  1. 移除硬编码尺寸的代码
    删除窗体Load事件中手动设置Me.Size = New Size(2623, 1751)的代码,让窗体使用设计时的原始尺寸,依赖AutoScale机制自动适配屏幕DPI。

  2. 恢复窗体启动位置设置
    将窗体的StartPosition属性改回CenterScreen(无需设置为Manual),系统会自动处理居中逻辑。

  3. 统一高DPI适配设置

    • 检查启动窗体的AutoScaleMode属性,设置为Dpi(WinForms高DPI适配的推荐选项),确保和其他正常显示的窗体保持一致。
    • 确认窗体的AutoSize属性为False,避免窗体自动拉伸;AutoSizeMode保持默认或设为GrowOnly。
  4. 检查TableLayoutPanel布局

    • 如果TableLayoutPanel设置了Dock = Fill,确认其ColumnStyles和RowStyles使用Percent或AutoSize,而非固定像素值,防止布局溢出导致窗体异常。
    • 若不需要铺满窗体,可将TableLayoutPanel的Dock改为None,手动调整其位置和尺寸。
  5. 添加全局高DPI感知配置(可选)
    在项目的app.config中添加以下配置,强制应用程序使用PerMonitorV2级别的DPI感知,提升跨屏幕适配效果:

    <configuration>
      <appSettings>
        <add key="WindowsFormsApplicationBase.DpiAwareness" value="PerMonitorV2" />
      </appSettings>
    </configuration>
    

    或者在Program.vb的启动代码中添加:

    Imports System.Windows.Forms
    
    Module Program
        <STAThread>
        Sub Main()
            Application.SetHighDpiMode(HighDpiMode.PerMonitorV2)
            Application.EnableVisualStyles()
            Application.SetCompatibleTextRenderingDefault(False)
            Application.Run(New YourStartupForm())
        End Sub
    End Module
    

内容的提问来源于stack exchange,提问作者Larry Stinson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:32:57