現在使用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 關注
- 85 瀏覽
添加回答
舉報
0/150
提交
取消