結合および自動マージされるセルがあるときに列を追加すると例外が発生する
対象製品
SPREAD for WPF 1.0J
状況
修正済み
詳細
セルの結合および列の自動マージの両方が実行されているとき、結合されたセルを含む列の前に列を挿入すると例外が発生します。
【手順】
1. 新規プロジェクトにSPREADとButtonコントロールを配置します。
2. SPREADを次のように設定し、セル結合と自動マージを実装します。
◎サンプルコード(VB)
◎サンプルコード(C#)
3. ButtonコントロールのClickイベントで列を挿入します。
◎サンプルコード(VB)
◎サンプルコード(C#)
4. プロジェクトを実行しボタンを押下すると例外が発生します。
【手順】
1. 新規プロジェクトにSPREADとButtonコントロールを配置します。
2. SPREADを次のように設定し、セル結合と自動マージを実装します。
◎サンプルコード(VB)
For i As Integer = 0 To gcSpreadGrid1.RowCount - 1
GcSpreadGrid1.SetCellValue(i, 0, "A")
Next
GcSpreadGrid1(0, 0).ColumnSpan = 2
GcSpreadGrid1.Columns(0).MergePolicy = MergePolicy.Always
◎サンプルコード(C#)
for(int i = 0; i < gcSpreadGrid1.RowCount; i++)
{
gcSpreadGrid1.SetCellValue(i, 0, "A");
}
gcSpreadGrid1[0, 0].ColumnSpan = 2;
gcSpreadGrid1.Columns[0].MergePolicy = MergePolicy.Always;
3. ButtonコントロールのClickイベントで列を挿入します。
◎サンプルコード(VB)
Private Sub Button_Click(sender As Object, e As RoutedEventArgs)
GcSpreadGrid1.Columns.Insert(1)
End Sub
◎サンプルコード(C#)
private void Button_Click(object sender, RoutedEventArgs e)
{
gcSpreadGrid1.Columns.Insert(1);
}
4. プロジェクトを実行しボタンを押下すると例外が発生します。
回避方法
Service Pack 3(v1.0.2016.1207)で修正済みです。
Service Pack 3(v1.0.2016.1207)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
Insertメソッドを実行する前に、自動マージをNoneに設定します。Insertメソッド実行後に元に戻します。
◎サンプルコード(VB)
◎サンプルコード(C#)
Service Pack 3(v1.0.2016.1207)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
Insertメソッドを実行する前に、自動マージをNoneに設定します。Insertメソッド実行後に元に戻します。
◎サンプルコード(VB)
GcSpreadGrid1.Columns(0).MergePolicy = MergePolicy.None
GcSpreadGrid1.Columns.Insert(1)
GcSpreadGrid1.Columns(0).MergePolicy = MergePolicy.Always
◎サンプルコード(C#)
gcSpreadGrid1.Columns[0].MergePolicy = MergePolicy.None;
gcSpreadGrid1.Columns.Insert(1);
gcSpreadGrid1.Columns[0].MergePolicy = MergePolicy.Always;