WinForms временно отключить вертикальную полосу прокрутки на панели - PullRequest
1 голос
/ 13 января 2012

У меня есть контроль MSChart в Panel в моей форме. На панели свойство AutoScroll установлено в значение True. Как только график становится слишком большим - пользователь может прокрутить его.

Как только пользователь нажимает Ctrl + MouseWheel, я включаю увеличение / уменьшение масштаба в области графика. В настоящее время на MouseWheel - и Panel, и Chart прокручиваются. Как отключить полосы прокрутки Panel в то время, когда Chart обрабатывает события прокрутки?

После отключения свойства AutoScroll Panel перемещает прокрутку вверх и скрывает вертикальную полосу прокрутки - так что это не то, что мне нужно:

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;
    }
}

Я бы хотел, чтобы панель прокрутки панели «зависала» при масштабировании диаграммы (ctrl + колесико мыши) и активировалась, когда диаграмма простаивает (колесико мыши). Есть идеи?

...