winform自定义窗体闪烁、部分内容不显示问题

才开始学winform的菜鸡一枚

自己尝试画了一个窗体的标题栏以及标题和右上角三个按钮,但在继承该窗体的窗体被显示时,却出现了闪烁、背景显示不全的问题,如图:

这是设计窗口的样子,实际运行出来就成了下面这个样子:

标题栏作为背景的panel总是不会被显示(不是偶发的,只要继承了我做的那个窗体就都会出现这种情况),并且在窗体刚显示时会类似刷新率不足的屏幕一般闪烁一段时间,大约1秒左右,目前尝试了网络中的开启双缓冲,并没有效果。现在毫无头绪。自定义窗体定义了标题栏、圆角、以及边框颜色,除此之外没定义其他属性。子窗体只是加了一个按钮和一个panel,而不使用panel作为图片载体而是直接将图片设为窗体背景图则不会触发闪烁以及标题panel不显示问题。

更新,使用

protected override CreateParams CreateParams { 
      get { 
        CreateParams c = base.CreateParams; 
        c.ExStyle | = 0x02000000; 
        return c; 
      } 

此段代码后,标题栏panel得以完整展现,但窗体中用于显示图片的panel却出现了持续性闪烁(更正,应该是panel的背景图出现了闪烁,因为放在改panel上的按钮并没有闪烁),图就不放了,因为着实截不出闪烁的样子。

最终解决办法:本着哪里不会烧哪里的原则,将Panel进行了重写,给它开了双缓冲,然后闪烁情况消除。

 

心态已炸,胡言乱语,期待大手解惑

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值