Как использовать MouseWheel для прокрутки родительского окна MDI в приложении Winforms - PullRequest
1 голос
/ 10 июня 2009

У меня есть приложение VB.Net Winforms, которое отображает родительскую форму MDI и позволяет отображать на ней несколько дочерних форм. Если дочерние формы выходят за пределы высоты экрана, в правой части MDI Parent автоматически отображается вертикальная полоса прокрутки, и я могу использовать эту полосу прокрутки для прокрутки дочерних форм в представление.

Но колесо мыши не влияет на эту полосу прокрутки. Как сделать так, чтобы колесико мыши прокручивало дочерние формы?

Я могу обрабатывать события колесика мыши, но я не уверен, что с ними делать, если обработаю их, чтобы включить прокрутку окна.

1 Ответ

1 голос
/ 21 июня 2009

После захвата события mousewheel просто вызовите SetDisplayRectLocation () прокручиваемого элемента управления. Что-то вроде

myControl.SetDisplayRectLocation(
            myControl.DisplayRectangle.X, 
            myControl.DisplayRectangle.Y + MouseWheelDelta * ScrollAmount
          );

(ScrollAmount - это определяемая вами константа, начиная с 30 пикселей).

Вам также необходимо вызвать AdjustFormScrollbars () в главной форме, чтобы обновить расположение полосы прокрутки.

(Извините, это C # - я не знаю синтаксис VB)

...