2017-09-05 28 views
0

子コントロールが多く、Autoscrollが有効なパネルがあります。ほんの数ピクセルの小さな動きでスクロールバーの結果の上部または下部にある矢印をクリック:パネル上のスクロールバーの移動量が変更されました

Panel with the down arrow clicked

移動量がはるかに大きい値に制御し、設定することができますか? .NET Compact Frameworkの使用。 .NETのフルバージョンで

EDIT 1

VerticalScroll.SmallChangeVerticalScroll.LargeChange特性が直接アクセスすることができます。ただし、これらはCompact Frameworkでは使用できません。ですから、コンパクトフレームワークでこれをどうやってやるのでしょうか?パネルのAutoScrollPosition.Yを見ることによって

EDIT 2 、私はSmallChangeパラメータが5つのピクセルに設定されていることを発見しました。これは、Compact FrameworkのPanelコントロールの既定値である必要があります。私のタッチスクリーンアプリケーションでは、これは70ピクセルのようなものでなければなりません。

+0

SmallChangeとLargeChangeを調整できる[VerticalScroll]プロパティはありませんか? – icebat

+0

よろしくお願いします。ちょうど完全な.NETをチェックし、 'VerticalScroll.SmallChange'と他のプロパティはプログラムで利用可能ですが、これらはCompact Frameworkでは利用できません。だから私は次のステップは、これらのプロパティにアクセスする方法を見つけることだと思います。 – AlainD

+0

'VScrollBar'プロパティを試すこともできます。 Panelから派生したクラスを作成してアクセスする必要がありますが、単純なものでなければなりません。 – icebat

答えて

0

多くの研究の結果、これはCompact Frameworkでは単純に不可能であるという結論に至りました。この答えは、特定の問題のためではなく、優れた回避策は、新たな「親」パネルを作成し、この親

  • 上の古いパネルを置き、子供のサイズを変更this answer by Cyril Gupta

    • から適応するように、親の小さな領域表示されます。この領域には、UpDownボタンを配置します。
    • 子パネルでAutoScrollを無効にします。
    • スクロールバーが消えるように子パネルの高さを設定します。もちろん、すべてのコントロールが表示されるわけではありません。
    • 親パネルでいずれかのボタンをクリックすると、子のTopプロパティを変更します。

    うまく動作します!

  • 関連する問題