SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

リボンインターフェースでチャート表示を切り替える.NETアプリケーションの作成

Ribbon for Windows Forms 2.0JのC1Ribbonコントロールを使ったアプリケーションの作成

  • このエントリーをはてなブックマークに追加

チャートタイプを変更する

 ここからは、ボタンを押すとグラフの種類を変更する処理を作成していきます。ボタンをダブルクリックした際、ボタンのイベントハンドラが作成されるので、その動作をここに記述します。

縦棒グラフ

 最初のボタンでは、縦棒グラフに変更する処理を作成します。まず、ChartGroupクラスのChartTypeプロパティの値を、Chart2DTypeEnum列挙体のメンバ「Bar」に設定します。

 そして、ChartAreaプロパティに設定するAreaクラスのInvertedプロパティをFalseにしておきます。

 このプロパティは、棒グラフを横棒にしたときなどXY軸を入れ替えるプロパティで、TrueでX軸とY軸のデータを入れ替えます。

 次のボタンで横棒グラフに変更する際に使用しますが、この縦棒グラフに戻すときは、X軸とY軸のデータを入れ替え直す必要があるので、InvertedプロパティをFalseにします。

Visual Basic
Private Sub RibbonButton1_Click(sender As System.Object, e As System.EventArgs) Handles RibbonButton1.Click
    C1Chart1.ChartGroups(0).ChartType = C1.Win.C1Chart.Chart2DTypeEnum.Bar
    C1Chart1.ChartArea.Inverted = False
End Sub
C#
private void ribbonButton1_Click(object sender, EventArgs e)
{
    c1Chart1.ChartGroups[0].ChartType = C1.Win.C1Chart.Chart2DTypeEnum.Bar;
    c1Chart1.ChartArea.Inverted = false;
}

 なお、このあとチャートタイプを入れ替えるのに、以下のChart2DTypeEnum列挙体のメンバを操作します。

Chart2DTypeEnum列挙体のメンバ
メンバ名 説明
XYPlot プロットグラフ
Pie 円グラフ
Bar 棒グラフ
Area エリアグラフ
Polar ポーラチャート
Radar レーダーチャート
Bubble バブルチャート
HiLo HiLoチャート
HiLoOpenClose HiLoOpenCloseチャート
Candle ローソク足チャート
Gantt ガントチャート
Step ステップチャート
Histogram ヒストグラム

横棒グラフ

 2番目のボタンは、横棒グラフに変更します。横棒グラフは、Chart2DTypeEnum列挙体のメンバはそのままで、InvertedプロパティをTrueにするだけです。

Visual Basic
Private Sub RibbonButton2_Click(sender As System.Object, e As System.EventArgs) Handles RibbonButton2.Click
    C1Chart1.ChartGroups(0).ChartType = C1.Win.C1Chart.Chart2DTypeEnum.Bar
    C1Chart1.ChartArea.Inverted = True
End Sub
C#
private void ribbonButton2_Click(object sender, EventArgs e)
{
    c1Chart1.ChartGroups[0].ChartType = C1.Win.C1Chart.Chart2DTypeEnum.Bar;
    c1Chart1.ChartArea.Inverted = true;
}

折れ線グラフ

 3つ目のボタンは、折れ線グラフに変更する処理を行います。

 折れ線グラフは、Chart2DTypeEnum列挙体のメンバ「XYPlot」を指定します。このままなら、そのまま折れ線グラフが設定されますが、「XYPlot」はシンボルのみの散布図の作成にも使われますので、明示的に線種を「Solid」に指定しておきます。

 また、横棒グラフから折れ線グラフに変更される場合もありますので、XY軸のデータを元に戻すためにInvertedプロパティをFalseに設定しておきます。

 ちなみに、ChartGroupsプロパティは複数のChartGroupがある場合に、どのChartGroupを操作するのかを指定するプロパティで、このC1Chartは1つのChartGroupしかありませんので、「ChartGroups(0)」と指定します。

 また、このチャートは2つのデータを使っていますので、それぞれのデータを結ぶ線はSeriesListプロパティで指定し個々に線種を設定します。

Visual Basic
Private Sub RibbonButton3_Click(sender As System.Object, e As System.EventArgs) Handles RibbonButton3.Click
    C1Chart1.ChartGroups(0).ChartType = C1.Win.C1Chart.Chart2DTypeEnum.XYPlot
    C1Chart1.ChartGroups(0).ChartData.SeriesList(0).LineStyle.Pattern = C1.Win.C1Chart.LinePatternEnum.Solid
    C1Chart1.ChartGroups(0).ChartData.SeriesList(1).LineStyle.Pattern = C1.Win.C1Chart.LinePatternEnum.Solid
    C1Chart1.ChartArea.Inverted = False
End Sub
C#
private void ribbonButton3_Click(object sender, EventArgs e)
{
    c1Chart1.ChartGroups[0].ChartType = C1.Win.C1Chart.Chart2DTypeEnum.XYPlot;
    c1Chart1.ChartGroups[0].ChartData.SeriesList[0].LineStyle.Pattern = C1.Win.C1Chart.LinePatternEnum.Solid;
    c1Chart1.ChartGroups[0].ChartData.SeriesList[1].LineStyle.Pattern = C1.Win.C1Chart.LinePatternEnum.Solid;
    c1Chart1.ChartArea.Inverted = false;
}

次のページ
まとめ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6541 2012/04/24 17:27

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング