一、起因
相信很多在用VS开发Winform的客户端程序的码农,都会碰到如题所示的问题。窗体在关闭或者打开时,总是会闪烁一下。对于我这种强迫症患者,看到这个闪来闪去,心里就不好。
随后在网上搜罗了一下,杂七杂八,你一言我一句,试遍了所有的方法,最终确定了以下方法,我试验后不再闪烁。
二、代码实现
网上的代码大部分都是用的C#,我将其换成了VB.net。将以下的代码放置于需要防止窗体闪烁的父窗体中
1 Public Sub New() 2 InitializeComponent() 3 SetStyle(ControlStyles.UserPaint, True) 4 SetStyle(ControlStyles.AllPaintingInWmPaint, True) 5 SetStyle(ControlStyles.OptimizedDoubleBuffer, True) 6 End Sub 7 8 Protected Overrides ReadOnly Property CreateParams As CreateParams 9 Get 10 Dim cp As CreateParams = MyBase.CreateParams 11 cp.ExStyle = cp.ExStyle Or &H2000000 12 Return cp 13 End Get 14 End Property