1

MDI親フォームを表示し、複数の子フォームを表示できるVB.NetWinformsアプリがあります。子フォームが画面の高さを超えて拡張されている場合、垂直スクロールバーがMDI親の右側に自動的に表示されます。このスクロールバーを使用して、子フォームをスクロールして表示できます。

ただし、マウスホイールはこのスクロールバーには影響しません。マウスホイールに子フォームをスクロールさせるにはどうすればよいですか?

マウスホイールイベントを処理することはできますが、ウィンドウのスクロールを有効にするために処理した後は、それらをどう処理するかわかりません。

4

1 に答える 1

1

mousewheelイベントをキャプチャしたら、スクロールするコントロールのSetDisplayRectLocation()を呼び出すだけです。何かのようなもの

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

(ScrollAmountは、定義する定数です。30ピクセルから開始します)。

また、メインフォームでAdjustFormScrollbars()を呼び出して、スクロールバーの位置を更新する必要があります。

(申し訳ありませんが、それはC#です-VB構文がわかりません)

于 2009-06-20T22:11:49.163 に答える