セルのコンテンツを書式設定および表示する方法を制御するには、Row オブジェクトまたは Column オブジェクトの Format プロパティを設定して、.NET Framework の String.Format プロパティで使用される書式設定と同様に文字列を書式設定します。たとえば、以下のサンプルコードは、3 番目の列を Date、4 番目の列を Currency として書式設定します。
また、FlexGrid は、Format プロパティを設定するための設計時オプションとして[書式文字列]ダイアログを提供します。[書式文字列]ダイアログには、列タスクメニューの[書式文字列]フィールドにある省略符ボタンをクリックしてアクセスできます。または、C1FlexGrid 列エディタで Format プロパティを使用することもできます。
[書式文字列]ダイアログは各列に固有です。選択した列の Format プロパティのみが変更されます。
FlexGrid は、配置、フォント、色、境界線などのセルの外観を処理するために CellStyle オブジェクトを提供しています。グリッドには、グリッドの書式設定に使用されるスタイルのコレクションを保持する Styles プロパティがあります。このコレクションには、固定セル、スクロール可能セル、選択範囲、フォーカスセルなど、グリッド要素の外観を定義する組み込みメンバがいくつか含まれます。これらのスタイルを変更して、グリッドの外観を修正できます。
組み込みスタイルを変更してグリッドの外観を変更する方法が最も簡単ですが、独自のカスタムスタイルを作成して、それをセル、行、列に割り当てることもできます。
WinForms FlexGrid のセルの外観を変更するには、次のコードを使用します。
コンテンツに従ってセルの書式設定を行うには、新しいスタイルを作成し、SetCellStyle() メソッドを使用して、特定の条件を満たすセルにスタイルを適用する必要があります。たとえば、指定した値より大きい値を強調表示するには、新しいスタイルを使用して、それらの値を含むセルを書式設定します。
以下のコードは、WinForms FlexGrid のセルに条件付き書式設定を適用する方法を示しています。
上のセクションでは、グリッドの外観を変更するために、CellStyle オブジェクトを使用して FlexGrid のセルをカスタマイズする方法について説明しています。ただし、グラデーション背景、グラフィックのレンダリングなど、グリッドセルをさらにカスタマイズするには、C1FlexGrid クラスの DrawMode プロパティと OwnerDrawCell イベントを使用できます。
DrawMode プロパティにより、OwnerDrawCell イベントが発生するかどうかが決まります。このイベントを使用して、セルのすべての視覚要素をオーバーライドできます。イベントハンドラで e.Text パラメータと e.Image パラメータを設定することで、セルに表示されるテキストと画像を変更できます。また、e.Style プロパティを設定することで、セルの表示に使用されるスタイルを変更できます。
他のセルに影響しないように、Style パラメータのプロパティは変更しないでください。その代わり、Style パラメータに新しい CellStyle オブジェクトを割り当てます。たとえば、e.Style.ForeColor = Color.Red を設定するのではなく、e.Style = c1FlexGrid1.Styles["RedStyle"] を使用して、パラメータに完全に新しいスタイルを割り当てます。
独自の描画コードを使用してセルに描画したり、カスタムコードと e.DrawCell メソッドの呼び出しを組み合わせることもできます。たとえば、GDI 呼び出しを使用してセルの背景を描画し、次に e.DrawCell を呼び出してセルの境界線とコンテンツを表示することができます。
以下の例で、WinForms FlexGrid は、選択されたセル範囲の背景をグラデーションブラシを使用して描画します。このサンプルコードでは、まず DrawMode プロパティに OwnerDraw を設定し、次に LinearGradientBrush オブジェクトを宣言します。