c#Winform窗体实际运行大小与size属性设置不一致问题解决

在不同DPI设置下,Winform窗体的实际运行大小与Size属性不符,导致显示不全。通过尝试设置AutoSize、AutoScaleMode,以及调整Windows显示设置,发现问题根源在于高DPI环境下的DPI感知模式。解决方案包括在100% DPI下设计,或者禁用VS的高DPI感知模式。关闭VS,将DPI设为100%,修改窗体大小后再恢复DPI,可使窗体显示正常且大小与设置一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

将Winform窗体设计程序从台式电脑拷贝到笔记本电脑后,刚开始运行,界面可以显示完全,但后来出现界面显示不完全问题,发现Winform窗体实际运行大小(QQ截图)与size属性设置不一致。
尝试一:
认为是误设置了窗体的某个属性,故与原来台式电脑上Winform窗体属性对比
结果:发现没有区别,未找到问题所在
尝试二:
尝试通过窗体属性设置如AutoSize、AutoScaleMode使窗体显示完全。
发现设置AutoScaleMode时,Font和Dpi效果一样,None和Inherit会使窗体控件间距变大,显示更加不完全,一般设置AutoScaleMode=Font或Dpi;设置AutoSize为True时,窗体实际运行大小(QQ截图)与size属性设置不一致,但窗体宽方向上显示完全,高方向上状态栏statusStrip被压在panel控件下面无法显示,将状态栏statusStrip放到panel控件中则可以显示完全(貌似把所有控件都放到一个panel中可以避免AutoSize为True时显示不完全的现象?不懂)
结果:发现将AutoSize属性设置为true,并把状态栏statusStrip(甚至所有控件都)放到一个panel中可以使界面显示完全,但Winform窗体实际运行大小(QQ截图)与size属性设置不一致。
**尝试三:**通过在Form_Load()中设置size更改窗体初始加载大小。(AutoSize=false;AutoScaleMode=Font)

            //size属性设置为1628*1062(界面恰好显示完全);实际显示1286*748(界面显示不完全)
            
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值