作成日: 2014/10/15 最終更新日: 2015/01/15
文書種別
不具合
状況
修正済み
詳細
以下の条件においてAutoSizeColumnsメソッドを呼び出すと、ArgumentOutOfRangeException例外が発生します。
- アセンブリバージョン4.0.20142.413のC1FlexGridを使用
- ヘッダ行数(ColumnHeaders.Rows.Count)よりもデータ行数(ItemsSourceにバインドしているリストのデータ数)が少ない
- AutoSizeColumnsメソッドを呼び出す際、allCells引数にtrueを指定
回避方法
この問題はバージョン4.0.20143.440で修正されました。
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです。
ウィンドウのLoadedイベント内で、allCellsパラメータを指定せずに、すべての列を範囲に含めてAutoSizeColumns()メソッドを呼び出すようにします。このとき、連続して2回AutoSizeColumns()メソッドを呼び出す必要があります。また、C1FlexGridのScrollPositionChangedイベント内でもAutoSizeColumns()メソッドを呼び出すようにします。
◎サンプルコード(VB)
◎サンプルコード(C#)
修正版の適用方法については、アップデートの方法を参照してください。
修正版を適用しない場合の回避方法は次の通りです。
ウィンドウのLoadedイベント内で、allCellsパラメータを指定せずに、すべての列を範囲に含めてAutoSizeColumns()メソッドを呼び出すようにします。このとき、連続して2回AutoSizeColumns()メソッドを呼び出す必要があります。また、C1FlexGridのScrollPositionChangedイベント内でもAutoSizeColumns()メソッドを呼び出すようにします。
◎サンプルコード(VB)
Private Sub C1FlexGrid_Loaded(sender As Object, e As RoutedEventArgs)
' すべての列幅を自動調整
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0)
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0)
End Sub
Private Sub C1FlexGrid_ScrollPositionChanged(sender As Object, e As EventArgs)
' すべての列幅を自動調整
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0)
End Sub
' すべての列幅を自動調整
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0)
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0)
End Sub
Private Sub C1FlexGrid_ScrollPositionChanged(sender As Object, e As EventArgs)
' すべての列幅を自動調整
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0)
End Sub
◎サンプルコード(C#)
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// すべての列幅を自動調整
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0);
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0);
}
private void _flex_ScrollPositionChanged(object sender, EventArgs e)
{
// すべての列幅を自動調整
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0);
}
{
// すべての列幅を自動調整
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0);
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0);
}
private void _flex_ScrollPositionChanged(object sender, EventArgs e)
{
// すべての列幅を自動調整
_flex.AutoSizeColumns(0, _flex.Columns.Count - 1, 0);
}
旧文書番号
81000