现在使用splitContainer1.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(splitContainer1, true, null);splitContainer1.Panel2.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(splitContainer1.Panel2, true, null);splitContainer1.Panel1.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(splitContainer1.Panel1, true, null); 闪烁明显改善,但是还存在。尤其是拖拽中间的分割线的时候。
1 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
重写一个控件继承 SplitContainer,在构造函数里加:
this .SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true ); |
另外如果容器内部你还有别的容器控件(尤其是 Panel、GroupBox、甚至 PictureBox),这些子容器没启用双缓冲的话,SplitContainer 即使开了双缓冲也没用。
- 1 回答
- 0 关注
- 50 浏览
添加回答
举报
0/150
提交
取消