WinForms temporary disable vertical scrollbar in panel

I have MSChart control within Panel in my form. Panel has AutoScroll property set to True. Once the chart gets too big - user is able to scroll through it.

Once user presses Ctrl+MouseWheel I am enabling zoom in/out to the chart area. Currently on MouseWheel - both Panel and Chart are scrolling. How do I disable Panel scrollbars at the time when Chart is handling scrolling events?

After disabling AutoScroll property Panel is moving scroll to the top and hiding vertical scrollbar - so this is not what I want:

void Chart_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control == true)
    {
         (Parent as Panel).AutoScroll = false;
    }
}

void Chart_KeyUp(object sender, KeyEventArgs e)
{
    if (e.Control == false)
    {
        (Parent as Panel).AutoScroll = true;
    }
}

I would like Panel scrollbar to "freeze" when chart is zooming (ctrl+mousewheel) and activate when chart is idle (mousewheel). Any ideas?

链接地址: http://www.djcxy.com/p/53698.html

上一篇: C#6.0是否适用于.NET 4.0?

下一篇: WinForms临时禁用面板中的垂直滚动条