Форма не перерисовывается при прокрутке по инерции, застревает все элементы управления - PullRequest
1 голос
/ 03 августа 2020

Когда я прокручиваю по горизонтали или вертикали, элементы управления сворачиваются друг с другом, пока я не отпущу полосу прокрутки и все dr aws нормально. Я уже пробовал использовать DoubleBuffer и установить стиль после InitializeComponent

SetStyle(ControlStyles.OptimizedDoubleBuffer |
                 ControlStyles.UserPaint |
                 ControlStyles.AllPaintingInWmPaint, true);

Я также использую:

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 to SB_THUMBPOSITION
        m.WParam = (IntPtr)(((int)m.WParam & ~0xFFFF) | 4);
    }
    base.WndProc(ref m);
}

Но у меня все еще та же проблема. Это нормальное поведение:

image1

And this is when scrolling behavior:

решение

1 Ответ

0 голосов
/ 03 августа 2020

Чтобы решить проблему более эффективно, предоставьте простую демонстрацию , чтобы воспроизвести проблему.

И, возможно, вы можете попытаться изменить CreateParams.

protected override CreateParams CreateParams
{
    get
    {
        if (Environment.OSVersion.Version.Major >= 6)
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x02000000;
            return cp;
        }
        else
        {
            return base.CreateParams;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...