Tabcontrol控件的閃爍問題

筆者在開發中發現,當調整窗體中的Tabcontrol控件大小時,如果tabcontrol控件中包含Listbox、DatagridView等較多控件時,易出現Tabcontrol控件不停閃爍的問題,嚴重影響應用程序的美觀。

經過搜索和測試,發現解決辦法是在tabcontrol控件所在的窗體添加如下的代碼,即可徹底解決Tabcontrol控件的閃爍:

    Dim AntiFlicker As Boolean = False

    Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            If AntiFlicker Then
                cp.ExStyle = cp.ExStyle Or &H2000000  'Turn on WS_EX_COMPOSITED
            End If
            Return cp
        End Get
    End Property

    '開始調整大小時啓用抗閃爍
    Private Sub Form2_ResizeBegin(sender As Object, e As System.EventArgs) Handles Me.ResizeBegin
        AntiFlicker = True
        Me.MaximizeBox = True
    End Sub

    '調整完畢時關閉抗閃爍
    Private Sub Form2_ResizeEnd(sender As Object, e As System.EventArgs) Handles Me.ResizeEnd
        AntiFlicker = False
        Me.MaximizeBox = True
    End Sub


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章