Comportamiento o error de Microsoft VSrollBar con pantalla táctil - formularios Windows

Encontré un comportamiento extraño con VScrollBar (barra de desplazamiento vertical disponible en la caja de herramientas de Visual Studio). El problema es "Si deslizo hacia abajo en la barra de desplazamiento, se mueve hacia arriba. Si deslizo hacia arriba, se mueve hacia abajo".

Pasos para replicar error o comportamiento - 1

1) Agregue VScrollBar como hijo a cualquier control de usuario.

2) Deslice hacia arriba o hacia abajo en el control del usuario (no en la barra de desplazamiento). La barra de desplazamiento vertical se mueve en dirección opuesta, incluso si no hay ninguna conexión programática entre el contenido y VScrollBar

Pasos para replicar error o comportamiento - 2

1) Agregue VScrollBar como hijo a cualquier control de usuario.

2) Deslice el dedo en la barra de desplazamiento, se moverá hacia arriba durante el deslizamiento hacia arriba y hacia abajo durante el deslizamiento hacia abajo (comportamiento correcto)

3) Deslice hacia arriba o hacia abajo en el control del usuario. La barra de desplazamiento vertical se mueve en dirección opuesta

4) Ahora deslice hacia arriba o hacia abajo en la barra de desplazamiento vertical. La barra de desplazamiento vertical comienza a moverse en dirección opuesta (comportamiento con errores, solo ocurre después del error no: 1)

Control simple con barra de desplazamiento vertical para replicar este comportamiento.

public class QuickViewer : Control
{
    public QuickViewer()
    {
        // Designer generated code
        // Copy pasted for illustration alone

        this.vScrollBar1 = new System.Windows.Forms.VScrollBar();
        this.SuspendLayout();
        // 
        // vScrollBar1
        // 
        this.vScrollBar1.Location = new System.Drawing.Point(420, 4);
        this.vScrollBar1.Name = "vScrollBar1";
        this.vScrollBar1.Size = new Size(this.vScrollBar1.Width, 292);            
        // 
        // QuickViewer
        //             
        this.Controls.Add(this.vScrollBar1);
        this.Name = "QuickViewer";
        this.Size = new System.Drawing.Size(441, 296);
        this.vScrollBar1.Value = 5;        
        this.ResumeLayout(false);
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        //My actual control is different. I prepared a simple control to replicate the buggy behavior of VScrollBar

        //Control border
        Pen borderPen = new Pen(Color.LawnGreen, 5);
        e.Graphics.DrawRectangle(borderPen, ClientRectangle);
        borderPen.Dispose();

        //View area
        Rectangle rect = new Rectangle(ClientRectangle.Location, ClientRectangle.Size);
        rect.Inflate(-25, -10);
        e.Graphics.FillRectangle(Brushes.White, rect);
        e.Graphics.DrawRectangle(Pens.Black, rect);
        this.Font = new System.Drawing.Font("Segoe UI", 12, FontStyle.Bold);
        StringFormat format = new StringFormat() { Alignment = StringAlignment.Center };
        e.Graphics.DrawString("Quick viewer", this.Font, Brushes.Black, rect, format);
        string content = "This is a control created to illustrate the bug in VScrollBar." +
            "\n Control area refers to the area with white background" +
            "\n Control and Vertical Scrollbar are not programatically connected with each other."
            + "But still VScrollBar moves if you swipe on control area";

        Font font = new System.Drawing.Font("Segoe UI", 12, FontStyle.Italic);
        rect.Y += 20;
        e.Graphics.DrawString(content, font, Brushes.Black, rect, format);

        font.Dispose();
        format.Dispose();
        base.OnPaint(e);
    }

    /// <summary> 
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary> 
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }


    private System.Windows.Forms.VScrollBar vScrollBar1;

}

Pregunta:

¿Hay alguna forma de superar este comportamiento o error? Quiero que la barra de desplazamiento se mueva hacia abajo mientras se desliza hacia abajo y hacia arriba mientras se desliza hacia arriba. No debería haber ningún desplazamiento al deslizar sobre el contenido

Respuestas a la pregunta(2)

Su respuesta a la pregunta