新規に作成したSheetViewでCopyRangeメソッドを実行すると例外が発生する場合がある
対象製品
SPREAD for Windows Forms 8.0J
状況
修正済み
詳細
新規に作成したSheetViewでCopyRangeメソッドを実行すると例外が発生する場合があります。
【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
--例外(System.ArgumentNullException)が発生します
【サンプルコード】
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim mySheet As New FarPoint.Win.Spread.SheetView()
FpSpread1.Sheets.Count = 1
mySheet.ColumnCount = FpSpread1.ActiveSheet.ColumnCount
mySheet.RowCount = FpSpread1.ActiveSheet.RowCount
mySheet.CopyRange(0, 1, 10, 1, 1, 15, False)
FpSpread1.Sheets.Insert(1, mySheet)
FpSpread1.TabStripPolicy = FarPoint.Win.Spread.TabStripPolicy.Always
End Sub
【手順】
1.新規フォームにSPREADとButtonを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.Buttonをクリックします
--例外(System.ArgumentNullException)が発生します
【サンプルコード】
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim mySheet As New FarPoint.Win.Spread.SheetView()
FpSpread1.Sheets.Count = 1
mySheet.ColumnCount = FpSpread1.ActiveSheet.ColumnCount
mySheet.RowCount = FpSpread1.ActiveSheet.RowCount
mySheet.CopyRange(0, 1, 10, 1, 1, 15, False)
FpSpread1.Sheets.Insert(1, mySheet)
FpSpread1.TabStripPolicy = FarPoint.Win.Spread.TabStripPolicy.Always
End Sub
回避方法
Service Pack 2(v8.0.3503.2008)で修正済み。
Service Pack 2(v8.0.3503.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
CopyRangeメソッドを実行する前にシート名を設定します。
【サンプルコード】
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Dim mySheet As New FarPoint.Win.Spread.SheetView() ' <== 例外発生
Dim mySheet As New FarPoint.Win.Spread.SheetView(String.Format("Sheet{0}", FpSpread1.Sheets.Count + 1)) ' <== 対応策
FpSpread1.Sheets.Count = 1
mySheet.ColumnCount = FpSpread1.ActiveSheet.ColumnCount
mySheet.RowCount = FpSpread1.ActiveSheet.RowCount
mySheet.CopyRange(0, 1, 10, 1, 1, 15, False)
FpSpread1.Sheets.Insert(1, mySheet)
FpSpread1.TabStripPolicy = FarPoint.Win.Spread.TabStripPolicy.Always
End Sub
Service Pack 2(v8.0.3503.2008)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
CopyRangeメソッドを実行する前にシート名を設定します。
【サンプルコード】
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Dim mySheet As New FarPoint.Win.Spread.SheetView() ' <== 例外発生
Dim mySheet As New FarPoint.Win.Spread.SheetView(String.Format("Sheet{0}", FpSpread1.Sheets.Count + 1)) ' <== 対応策
FpSpread1.Sheets.Count = 1
mySheet.ColumnCount = FpSpread1.ActiveSheet.ColumnCount
mySheet.RowCount = FpSpread1.ActiveSheet.RowCount
mySheet.CopyRange(0, 1, 10, 1, 1, 15, False)
FpSpread1.Sheets.Insert(1, mySheet)
FpSpread1.TabStripPolicy = FarPoint.Win.Spread.TabStripPolicy.Always
End Sub