作成日: 2020/07/06 最終更新日: 2020/08/26
文書種別
不具合
状況
修正済み
詳細
デフォルトの行の高さを指定した後で、SetRowVisibleメソッドや行のVisibleプロパティを使用して行の表示の設定を行うと、行の高さが明示的に指定されているにも関わらずセルの編集後に不正に行の高さの自動調整が行われます。本現象はLegacyBehaviorsがAutoRowHeightを含まない場合に発生します。
【再現手順】
1.新規作成したプロジェクトのForm1にFpSpreadとButtonを貼り付ける。
2.下記サンプルコードを記述し、プロジェクトをデバック実行する。
3.A1セルをクリックして編集状態にして編集せずに他のセルを選択する等して非編集状態にする。
---行の高さは変わらない
4.ボタンを押下する。
5.A1セルをクリックして編集状態にして編集せずに他のセルを選択する等して非編集状態にする。
---行の高さが変化してA1セルの内容がすべて表示される
■サンプルコード(VB.NET)
【再現手順】
1.新規作成したプロジェクトのForm1にFpSpreadとButtonを貼り付ける。
2.下記サンプルコードを記述し、プロジェクトをデバック実行する。
3.A1セルをクリックして編集状態にして編集せずに他のセルを選択する等して非編集状態にする。
---行の高さは変わらない
4.ボタンを押下する。
5.A1セルをクリックして編集状態にして編集せずに他のセルを選択する等して非編集状態にする。
---行の高さが変化してA1セルの内容がすべて表示される
■サンプルコード(VB.NET)
Imports FarPoint.Win.Spread.CellType
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With FpSpread1.ActiveSheet
.Columns(0).CellType = New TextCellType With {.StringTrim = StringTrimming.EllipsisCharacter, .WordWrap = True, .ReadOnly = True}
.SetValue(0, 0, "あいうえおかきくけこさしすせそ")
.Rows.Default.Height = 10 ' 現象が発生
'.Rows(-1).Height = 30 ' 現象が発生
End With
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' 行の表示
FpSpread1.ActiveSheet.SetRowVisible(0, True)
'FpSpread1.ActiveSheet.Rows(0).Visible = True ' <== 同じ現象が発生
End Sub
End Class
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With FpSpread1.ActiveSheet
.Columns(0).CellType = New TextCellType With {.StringTrim = StringTrimming.EllipsisCharacter, .WordWrap = True, .ReadOnly = True}
.SetValue(0, 0, "あいうえおかきくけこさしすせそ")
.Rows.Default.Height = 10 ' 現象が発生
'.Rows(-1).Height = 30 ' 現象が発生
End With
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' 行の表示
FpSpread1.ActiveSheet.SetRowVisible(0, True)
'FpSpread1.ActiveSheet.Rows(0).Visible = True ' <== 同じ現象が発生
End Sub
End Class
回避方法
Service Pack 5(v12.0.4508.2012)で修正済み。
Service Pack を適用せずに対処する場合、以下のいずれかの方法を使用して、デフォルトではなく個々の行の高さを設定します。
【回避方法1】
FpSpread1.ActiveSheet.Rows(0, .RowCount - 1).Height = 30
【回避方法2】
For i = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.ActiveSheet.Rows(i).Height = 30
Next i
Service Pack を適用せずに対処する場合、以下のいずれかの方法を使用して、デフォルトではなく個々の行の高さを設定します。
【回避方法1】
FpSpread1.ActiveSheet.Rows(0, .RowCount - 1).Height = 30
【回避方法2】
For i = 0 To FpSpread1.ActiveSheet.RowCount - 1
FpSpread1.ActiveSheet.Rows(i).Height = 30
Next i
旧文書番号
85780