2009-08-24 20 views
4

基本的にPanel(ランダムな内容の中身)のUser Controlを作成していますが、スクロールバーではなくボタンを使って上下にスクロールできる必要があります。スクロールバーのないWinFormパネルのスクロール?

このようにしなければならないのは、プログラムがタッチスクリーンモニターで使用され、醜い小さなスクロールバーではなく大きなボタンが必要なためです。

私はVerticalScrollbarプロパティを使いこなしていましたが、何もしていないようです。 AutoScrollをfalseに設定すると、AutoScrollPositionは実際に座標を表示することに気づきました。また、私はそれに気づいたpanel.VerticalScrollbar.Visible = true;コンストラクタの外側に配置した場合にのみ動作するように見えます。それには理由がありますか?

基本的に、WinFormsのスクロールバーは私にとって非常に混乱します(バグ?)。ボタンを使ってパネルを上下にスクロールする方法は誰にも分かります(私は目に見えないスクロールバーが必要かどうか気にしません)。

ありがとうございました! = D

答えて

5

UserControlを通常のUserControl(つまり、PanelではなくUserControlから継承)にし、UserControlにPanelを配置します。コンテンツ/コントロールを内側のパネルに置き、パネルの左と上のプロパティを変更してスクロールバーを使わずに移動します。 UserControlにボタンを追加して、インナーパネルの動きを処理することもできます。

しかしながら、より単純な方法では、本当にワイド/ハイのスクロールバーを使用し、Thumbwidth(これはプロパティだと思います)を同じ大きな値に設定することがあります。これにより、スクロールバーが生成されます指。私の知る限り、AutoscrollがTrueに設定されているパネルに表示されるスクロールバーでこれを行う方法はありません。上記の方法(UserControl上にある内側のパネル)を使用してスクロールバーを追加する必要がありますそれを自分で動かす。

私は、Windowsのスクロールバーが大丈夫だと私は同意します。だから、通常は誰もが使用している標準のコントロールを使用していますが、この場合は自分自身を動かすことに間違いはありません。

+0

おはよう、偉大な答えMusiGenesisに感謝します! 私は、パネルの位置を動かすのが最も簡単な方法だと考えました。しかし、パネルのサイズはその内部のものに基づいているので、これを避けたいと思っていました。今では、パネルや素材のサイズを把握するためにさらに作業をしなければなりません。それにもかかわらず、これは私が取る道のようです。再度、感謝します! – Alex

関連する問題