ほとんどのグリッドは、行および列ヘッダーのセルをサポートします。これにより、複数の列にまたがって1つのヘッダーを表示したり、選択範囲を含む行のステータスを示すことができます。
C1FlexGrid は、この概念をさらに広げて、複数セルのヘッダーをサポートします。たとえば、列ヘッダーを2行にして、1行に年度を表示し、もう1行に四半期を表示できます。この場合は、次のようにコードを設定します。
C# |
コードのコピー
|
---|---|
// もう1つの列ヘッダー行を追加します var ch = flexgrid1.ColumnHeaders; ch.Rows.Add(new Row()); // ヘッダー行にデータを挿入します for (int c = 0; c < ch.Columns.Count; c++) { ch[0, c] = 2009 + c / 4; // 行0:年度 ch[1, c] = string.Format("Q {0}", c % 4 + 1); // 行1:四半期 } |
このコードは、次のようなグリッドを生成します。
列ヘッダーを表示するために2つの行が使用されていることに注目してください。従来のグリッドでも、改行を含む列ヘッダーを使用して同様の効果を得られますが、上端の固定行に結合するようにセルを追加すると、同じ年度を参照する列が自動的に結合されるため、その違いは明らかです。このためには、コードを2行追加するだけです。
C# |
コードのコピー
|
---|---|
// もう1つの列ヘッダー行を追加しま var ch = flexgrid1.ColumnHeaders; ch.Rows.Add(new Row()); // ヘッダー行にデータを挿入します for (int c = 0; c < ch.Columns.Count; c++) { ch[0, c] = 2009 + c / 4; // 行0:年度 ch[1, c] = string.Format("Q {0}", c % 4 + 1); // 行1:四半期 // 上端の固定行を結合します flexgrid1.AllowMerging = AllowMerging.All; ch.Rows[0].AllowMerging = true; |
この結果は、次の図のようになります。