SPREAD上に表示されているShapeの数が多い場合、Shapeの移動時にマウスカーソルへの追随が遅くなる
対象製品
SPREAD for Windows Forms 7.0J
状況
修正済み
詳細
SPREAD上に表示されているShapeの数が多い場合、Shapeの移動時にマウスカーソルへの追随が遅くなります。
【手順】
1.新規フォームにSPREADを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.シェイプを移動します
--シェイプのマウスカーソルへの追随が遅くなります
【サンプルコード】
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' シェイプの設定
Dim shape As FarPoint.Win.Spread.DrawingSpace.RectangleShape
Dim rows As Integer = 40
Dim cols As Integer = 40
Dim row As Integer = FpSpread1.ActiveSheet.RowCount - 1
Dim col As Integer = FpSpread1.ActiveSheet.ColumnCount - 1
Dim rowOffset As Integer = row - rows + 1
Dim colOffset As Integer = col - cols + 1
For i As Integer = 0 To rows - 1
For j As Integer = 0 To cols - 1
shape = New FarPoint.Win.Spread.DrawingSpace.RectangleShape()
shape.Name = String.Format("shape_R{0}C{1}", i, j)
shape.BackColor = Color.LavenderBlush
shape.Size = New Size(40, 15)
FpSpread1.ActiveSheet.AddShape(shape, rowOffset + i, colOffset + j)
Next
Next
' 表示位置と画面サイズの設定
FpSpread1.SetViewportLeftColumn(0, row)
FpSpread1.SetViewportTopRow(0, col)
FpSpread1.Dock = DockStyle.Fill
Me.WindowState = FormWindowState.Maximized
End Sub
【手順】
1.新規フォームにSPREADを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.シェイプを移動します
--シェイプのマウスカーソルへの追随が遅くなります
【サンプルコード】
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' シェイプの設定
Dim shape As FarPoint.Win.Spread.DrawingSpace.RectangleShape
Dim rows As Integer = 40
Dim cols As Integer = 40
Dim row As Integer = FpSpread1.ActiveSheet.RowCount - 1
Dim col As Integer = FpSpread1.ActiveSheet.ColumnCount - 1
Dim rowOffset As Integer = row - rows + 1
Dim colOffset As Integer = col - cols + 1
For i As Integer = 0 To rows - 1
For j As Integer = 0 To cols - 1
shape = New FarPoint.Win.Spread.DrawingSpace.RectangleShape()
shape.Name = String.Format("shape_R{0}C{1}", i, j)
shape.BackColor = Color.LavenderBlush
shape.Size = New Size(40, 15)
FpSpread1.ActiveSheet.AddShape(shape, rowOffset + i, colOffset + j)
Next
Next
' 表示位置と画面サイズの設定
FpSpread1.SetViewportLeftColumn(0, row)
FpSpread1.SetViewportTopRow(0, col)
FpSpread1.Dock = DockStyle.Fill
Me.WindowState = FormWindowState.Maximized
End Sub
回避方法
Service Pack 4(v7.0.2016.2008)でパフォーマンスが改善されました。