SHOEISHA iD

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

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

ComponentZine(ComponentOne)

データベースのデータを小計つきで表示する.NETアプリケーションを作る

「PowerTools ComponentOne Studio 2012J」のC1FlexGridコントロールを使った.NETアプリケーションの作成

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

ノードの部分展開

 アウトラインツリー表示を設定した場合、デフォルトではプログラム実行時はすべてのツリーが展開した状態で表示されます。

デフォルトではすべてのツリーが展開した状態で表示される
デフォルトではすべてのツリーが展開した状態で表示される

 これを指定した階層レベル以下を折りたたみ、それより上位のレベルを展開するように設定することも可能です。これは、GridTreeクラスのShowメソッドを使用します。メソッドの引数には表示するレベルを数値で指定し、これより下位のLevelのノードは折りたたまれ、上位のレベルのノードは展開されます。

 次のコードは、最初のツリーレベルだけを展開し、2番目以下のレベルは折りたたむように指定しています。

Visual Basic
C1FlexGrid1.Tree.Show(1)
C#
c1FlexGrid1.Tree.Show(1);
最初のツリーレベルだけを展開
最初のツリーレベルだけを展開

列幅の自動調整

 デフォルトでは、列幅はグリッドのデザイン時のサイズのままになっていますから、データのサイズに関係なく表示されてしまいます。これだとデータの表示が途中で途切れたり、スクロールしないと表示されない状態になってしまいます。データを見るたびに、ユーザーが列幅を調整したりスクロールしたりと面倒です。

デフォルトでは列幅はデータに関係なく設定されてしまう
デフォルトでは列幅はデータに関係なく設定されてしまう
ツリーを展開しても列幅はそのまま
ツリーを展開しても列幅はそのまま

 小計やツリーの展開・縮小などを行った際に、列幅をセル内容に合わせて自動調節するように設定しておくと、表が見やすくなります。

 この処理を行うには、1つはC1FlexGridコントロールのAutoResizeプロパティをTrueにセットします。これで、列幅の自動調節が可能になります。

Visual Basic
C1FlexGrid1.AutoResize = True
C#
c1FlexGrid1.AutoResize = true;

 データベースからデータを読み込む前にこのプロパティをTrueにしておくと、グリッドの列幅は読み込んだデータに合わせて調節されます。

 ただし、これはデータを読み込んだ時にだけ実行されますので、小計やアウトラインツリーを展開・縮小した時にも列幅の自動調節を行うには、AutoSizeColsメソッドを実行します。このメソッドを実行するとその時点ですべての列幅を自動調節してくれます。

Visual Basic
C1FlexGrid1.AutoSizeCols()
C#
c1FlexGrid1.AutoSizeCols();

 アウトラインツリーを展開・縮小すると、C1FlexGridコントロールにはAfterCollapseイベントが発生しますので、このイベントハンドラを使うとツリーの展開・縮小のタイミングに合わせて、列幅を自動調節することができます。

Visual Basic
Private Sub C1FlexGrid1_AfterCollapse(sender As System.Object, e As C1.Win.C1FlexGrid.RowColEventArgs) Handles C1FlexGrid1.AfterCollapse
    'ツリーの展開・縮小のたびに列幅の自動調整を行う
    C1FlexGrid1.AutoSizeCols()
End Sub
C#
private void c1FlexGrid1_AfterCollapse(object sender, RowColEventArgs e)
{
    //ツリーの展開・縮小のたびに列幅の自動調整を行う
    c1FlexGrid1.AutoSizeCols();
}

次のページ
GUIのデザイン

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

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

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6864 2012/11/15 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング