作成日: 2026/01/05; 最終更新日: 2026/01/05
文書種別
不具合
状況
回避方法あり
詳細
グリッドの列に、CellStyleのCloneメソッドで取得したスタイルのFontを変更して設定し、AutoSizeRowsメソッドを呼び出すと、以下の例外が発生します。
(エラーの内容)
System.ArgumentNullException: '値を Null にすることはできません。パラメーター名:key'
(エラーの内容)
System.ArgumentNullException: '値を Null にすることはできません。パラメーター名:key'
回避方法
Cloneメソッドで作成したスタイルを直接設定するのではなく、FlexGrid.Styles.Addメソッドで新スタイルをグリッドに登録し、そのFontを設定して列に適用したのち、AutoSizeRowsを実行します。
◎サンプルコード(VB)
' 現在設定されている CellStyle を取得します。
Dim cs = C1FlexGrid1.Cols(2).Style
' 回避策:既存スタイルを流用して、新スタイルを作成します。
' Styles.Add メソッド: グリッドにスタイルを新規追加し、戻り値として取得します。
Dim cs2 = C1FlexGrid1.Styles.Add("cs2", cs)
cs2.Font = New Font(cs.Font, FontStyle.Bold) ' 新スタイルのフォントを変更
' 列に新スタイルを設定
C1FlexGrid1.Cols(2).Style = cs2
' 行の高さの自動調節
Dim r0 = .Rows.Fixed
Dim c0 = 0
Dim r1 = .Rows.Count - 1
Dim c1 = .Cols.Count - 1
C1FlexGrid1.AutoSizeRows(r0, c0, r1, c1, 8, AutoSizeFlags.None) '
◎サンプルコード(C#)
// 現在設定されている CellStyle を取得します。
CellStyle cs = C1FlexGrid1.Cols[2].Style;
// 回避策:既存スタイルを流用して、新スタイルを作成します。
// Styles.Add メソッド: グリッドにスタイルを新規追加し、戻り値として取得します。
CellStyle cs2 = C1FlexGrid1.Styles.Add("cs2", cs);
cs2.Font = new Font(cs.Font, FontStyle.Bold); // 新スタイルのフォントを変更
// 列に新スタイルを設定
C1FlexGrid1.Cols[2].Style = cs2;
// 行の高さの自動調節
int r0 = C1FlexGrid1.Rows.Fixed;
int c0 = 0;
int r1 = C1FlexGrid1.Rows.Count - 1;
int c1 = C1FlexGrid1.Cols.Count - 1;
// 余白(8) と AutoSizeFlags.None を指定して自動調整
C1FlexGrid1.AutoSizeRows(r0, c0, r1, c1, 8, AutoSizeFlags.None);