プロジェクト管理や工程管理など、タスクの進捗やスケジュールを確認するためのガントチャート。弊社製品では各プラットフォームにて用意されていますが、今日はWindowsForms向けのUltraGanttViewについてTipsを紹介します。
グリッド部分のカスタマイズについては、UltraGanttView の GridSettings クラスにより、背景色やフォーマットの設定を行う事ができます。
//選択セルの色設定 this.ultraGanttView1.GridSettings.SelectionOverlayColor = Color.Green; //DateTime列のフォーマットを変更 this.ultraGanttView1.GridSettings.ColumnSettings["DateTime"].Format = "yyyy/MM/dd HH:mm:ss";
しかし、この方法でのカスタマイズでは出来る範囲は限られており、より細かなプロパティ設定や、グリッドイベントをハンドルして処理を行うというような事ができません。
UltraGanttViewコントロールのグリッド部分は内部的には UltraGrid が利用されており、以下のコードで UltraGrid を抜き出すことができます。この抜き出したグリッドに対してカスタマイズを行う事で、UltraGrid と同じ容量でイベントハンドリングやグリッド特有のカスタマイズを行っていくことができます。
[グリッドの取得]
//Gridの取得 var grid = this.ultraGanttView1.GetType().InvokeMember("grid", BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic, null, ultraGanttView1, null) as UltraGrid;
[取得したグリッドのカスタマイズ]
// ********************** // GridSettingsでは実現できないカスタマイズを実装 // ********************** // 編集時のマスク文字の指定 grid.DisplayLayout.Bands[0].Columns["DateTime"].MaskInput = "mm/dd hh:mm:ss"; // リサイズ方法の指定 grid.DisplayLayout.Override.RowSizing = RowSizing.AutoFree; // 編集時に利用されるコントロールの指定 grid.DisplayLayout.Bands[0].Columns["DateTime"].EditorComponent = new UltraCalendarCombo(); // イベントハンドリング grid.AfterExitEditMode += grid_AfterExitEditMode;
この方法を使うことで、UltraGrid と同じ要領で複雑なカスタマイズを組み込んでいくことができます!
[関連ページ]
弊社製品は機能制限なしのトライアル版もご用意しています。ダウンロードはこちらから。