[]
SPREAD for Windows Forms では、シートおよび列/行およびセルなどのオブジェクトが「親」オブジェクトからプロパティを継承できます。たとえば、セルは所属するシートから背景色を継承することができます。 ただし、継承されたプロパティは個々のセル単位で上書きできます。既定では、オブジェクトは親からプロパティを継承します。そのため、任意のオブジェクトのプロパティは、自身で設定した書式と親から継承した書式が組み合わさったものになります。たとえば、セルは独自の文字色を持ちつつ、シートから背景色を継承することができます。
オブジェクトの親子関係によって、スプレッドシート内でスタイルの保存方法や実行方法を最適化できます。書式は行、列およびシートなどさまざまなレベルで設定できるため、どのスタイルが優先されるかを判断するための優先順位ルールが実行されます。
優先順位ルール
設定がセルに近いほど優先度が高くなります。たとえば、セルに背景色を設定した場合、親から継承した背景色設定よりもセルの設定が優先されます。逆に、列全体のセルにスタイルを設定すると、その列のスタイルが実行されます。 優先順位の高い順は以下の通りです:
セル > 行 > 列 > 交互行 > シート > コンポーネント
StyleRangeStrict プロパティを使用することで、スタイルの最適化を防ぐことができます。このプロパティの既定値は「false」です。「true」に設定すると、優先度の低いオブジェクトのスタイルに影響を与えずに、指定したセル範囲単位でスタイルを適用できます。たとえば、列全体のセルに書式を設定しても、行や列全体にはその書式は適用されません。
サンプルコード
以下のコードは StyleRangeStrictプロパティを「true」に設定した場合の動作例です。
C#
fpSpread1.LegacyBehaviors = FarPoint.Win.Spread.LegacyBehaviors.None;
sheet = fpSpread1.AsWorkbook().ActiveSheet;
private void buttonstyle_Click(object sender, EventArgs e)
{
fpSpread1.AsWorkbook().Features.StyleRangeStrict = true;
sheet.RowCount = 5;
sheet.Rows[0, 4].Interior.Color =
GrapeCity.Spreadsheet.Color.FromKnownColor((GrapeCity.Core.KnownColor)KnownColor.Yellow);
Debug.WriteLine("StyleRangeStrict: " + fpSpread1.AsWorkbook().Features.StyleRangeStrict.ToString());
Debug.WriteLine("列[0]のInterior.Color: " + sheet.Columns[0].Interior.Color.ToString());
}VB
FpSpread1.LegacyBehaviors = FarPoint.Win.Spread.LegacyBehaviors.None
sheet = FpSpread1.AsWorkbook().ActiveSheet
Private Sub buttonstyle_Click(ByVal sender As Object, ByVal e As EventArgs)
FpSpread1.AsWorkbook().Features.StyleRangeStrict = True
sheet.RowCount = 5
sheet.Rows(0, 4).Interior.Color =
GrapeCity.Spreadsheet.Color.FromKnownColor(CType(KnownColor.Yellow, GrapeCity.Core.KnownColor))
Debug.WriteLine("StyleRangeStrict: " & FpSpread1.AsWorkbook().Features.StyleRangeStrict.ToString())
Debug.WriteLine("列[0]のInterior.Color: " + sheet.Columns[0].Interior.Color.ToString())
End Sub制限事項
この機能は、LegacyBehaviors 列挙型の LegacyBehaviors.All が有効になっていない場合のみ有効です。