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进行了重写,给它开了双缓冲,然后闪烁情况消除。
心态已炸,胡言乱语,期待大手解惑