平滑滚动FlowLayoutPanel C#

时间:2016-01-26 13:12:14

标签: c# winforms flowlayoutpanel

任何人都可以帮我解决这个问题。 我有FlowLayoutPanel,其中有多个UserControls。 已启用自动滚动功能。 我遇到的问题是UserControls在滚动时闪烁/闪烁。我理解这是因为OnPaint事件。我试过下面的代码。派生自FlowLayoutControl并试图覆盖WndProc但没有成功。

class ScrollFlowLayoutPanel : FlowLayoutPanel
{
    private const int WM_HSCROLL = 0x114;
    private const int WM_VSCROLL = 0x115;

    protected override void WndProc(ref Message m)
    {
        if ((m.Msg == WM_HSCROLL || m.Msg == WM_VSCROLL) && (((int)m.WParam & 0xFFFF) == 5))
        {   
            // Change SB_THUMBTRACK SB_THUMBPOSITION         
            m.WParam = (IntPtr)(((int)m.WParam & ~0xFFFF) | 4);
        }

        base.WndProc (ref m);
    } 
}

由于

0 个答案:

没有答案