winform自定义控件大小显示不全

作者在使用他人自定义控件时遇到显示异常,发现`System.Windows.Forms.Application.SetHighDpiMode(HighDpiMode.SystemAware)`导致问题。解决方法包括注释该方法并调整控件属性如AutoSize。

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

抄的别人的自定义控件样式,发现拿过来后显示有些异常。检查了各项属性后发现一模一样,甚至我连我的初始界面Form1都替换成了他的代码,可是显示还是存在问题。

他的效果图

我的效果图

 是的,你没看错,我的字体都没显示全,只有一半(自定义控件的边界就是随意拉的,输入框的字体有一部分在边界外,蓝色线部分也有部分在边界外。这点我和他都一样);可是他的确实完完整整的显示出来了。

自定义控件设计样式

最后将所有的class进行排查后。

他的program
我的program

从以上两张图的对比中,我找到了差异。 

是这行ApplicationConfiguration.Initialize()方法里System.Windows.Forms.Application.SetHighDpiMode(HighDpiMode.SystemAware);的搞的鬼!

把他注释掉之后,字体大小边界的显示就正常了(如图)

我的注释掉initialize后

(忽略掉textboox输入框的边框凹凸的问题,那是他的program代码的前两行造成的)

不过此时又出现了另一个问题。我的蓝色的线怎么没显示出来 ?这又是什么代码控制的啊,头秃

------------------------------------------分割线--------------------------------------------------

我知道了,把显示不出来的东西的属性设置一下。

如果是label没显示出来或显示半截,那就将属性AutoSize设置为true;

如果是pictrueBox显示出来半截,那就将属性SIzeMode设置为System.Windows.Forms.PictureBoxSizeMode.AutoSize。

别的控件也可以根据类似的属性调一调试试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值