プロが教える店舗&オフィスのセキュリティ対策術

最近 .NETを勉強し始めています。

Visual Studio 2010 Express(C#)を使用して、複数のグラフを表示するために、
Chart Controlを使用して、実現しています。

複数のグラフを表示したときに、縦にグラフを並べていこうと思っています。
その際、一つのチャートの大きさは変えずに増やしていき、
Chartのサイズを超えた場合は右側にスクロールバーを追加して、
表示できるようにしたいと思っています。

現状だと、Chartが多くなるとサイズが小さくなって、スクロールバーが出ません。
イメージとしては、下記のようにしたいです。

┌────────┬┐
│ Chart          ││
│┌─────┐  ││
││ChartArea1│   ││
│└─────┘  ││
│              ││
│┌─────┐   ││
││ChartArea2│   ││
│└─────┘   ││
│              ││
│┌─────┐   ││
││ChartArea3│   ││
│└─────┘   ││
│              ││
└────────┴┘


素人ですみませんが、よろしくお願いします

A 回答 (2件)

Chartコントロールを パネルなどのコンテナコントロールに配置して


コンテナ側の AutoScrollプロパティを Trueにします

ChartAreaを追加する際に 垂直方向であれば ChartコントロールのHeightプロパティを調整してやればいい様に思います

最初に1つだけ表示していて 2個目を追加した際に大きさを同じにしたいのであれば Heightを2倍にします
つまりデザイン時の大きさを加算します

最初に2個表示しておくならば Heightの1/2を加算
最初から3個の場合 Heightの1/3を加算
といった具合で …

コンテナに配置する際に 幅は 垂直スクロールバーが表示された場合を考慮して 少しコンテナより狭くして 水平スクロールバーが表示されないように工夫したほうがいいでしょう
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

チャートコントロール自体には、AutoScrollプロパティがないので、
コンテナを利用してAutoScroll機能を実現するわけですね。

このようなことができるのは、
チャートコントロールはコンテナを継承しているからでしょうか?
(的外れなコメントでしたらすみません)

見た目の工夫に関してもコメントありがとうございます。
ネットの情報などを参考にして、Panelなどのコンテナを利用したAutoScrollを試してみようと思います

お礼日時:2012/11/06 09:55

コンテナを継承しているかどうかは 関係ないと思いますよ


AutoScrollはScrollableControlを継承している必要があると思います

もともとのデザインされた大きさを中に表示されるもので勝手にコントロールが大きくなられては
製作者にとって迷惑な話になります

コントロールの表示位置や大きさを変更することでコンテナ側のスクロールバーを使うといった具合がいいかなと思います
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!