作成日: 2018/05/11 最終更新日: 2018/06/22
文書種別
制限事項
詳細
デザイン時にSPREADスキン(コントロールスキン)とシートスキンを同時に設定している場合、SheetViewクラスの以下のプロパティ配下のメンバーの値をデザイン時に変更できません。

■再現手順
- ColumnFooter.DefaultStyle(列フッタのデフォルト設定)
- ColumnFooterSheetCornerStyle(列フッタのコーナーのデフォルト設定)
- ColumnHeader.DefaultStyle(列ヘッダのデフォルト設定)
- DefaultStyle(データ表示部のデフォルト設定)
- FilterBar.DefaultStyle(フィルタバーのデフォルト設定)
- FilterBarHeaderStyle(フィルタバーのヘッダのデフォルト設定)
- RowHeader.DefaultStyle(行ヘッダのデフォルト設定)
- SheetCornerStyle(シートコーナーのデフォルト設定)

■再現手順
- フォーム上にSPREADを配置します。
- SPREADスキンエディタを開き、[標準]-[Office2007]を選択します。
- シートスキンエディタを表示し、[標準]-[Classic]を選択します。
- SheetViewクラスのDefaultStyle.BackColorプロパティを任意の色(例:"Red")に変更します。
→デザイナ上のデータ表示部分の背景色が設定した色に変わります。
※手順2,3で選択したスキンによっては、スキンの設定が優先され、背景色が変わらない場合があります。 - フォームを閉じ、再度開きます。
→4.で変更した内容が無視され、元の状態に戻ります。
回避方法
回避方法としては、以下のいずれかの方法が有効です。
1.名前付きスタイルを使用する方法
スキンを使用している場合、そのスキンと関連付けられている名前付きスタイル(NamedStyleクラス)から設定情報を親スタイルとして取得し、デフォルト設定として使用しています。どの名前付きスタイルが関連付けられているかは、Parentプロパティから確認できます。
■DefaultStyle(データ表示部)のParentプロパティ
※Parentプロパティは、各要素ごとに存在します。
SheetViewクラスのDefaultStyleプロパティを直接を変更するのではなく、親スタイルである名前付きクラス側の設定を変更することで、本事象を回避することが可能です。
たとえば、上図のようにDefaultStyle(データ表示部)のParentプロパティが"DataAreaDefault"に設定されている場合に、セルの背景色(BackColorプロパティ)を変更する手順は、以下の通りとなります。
また、上記の方法を適用できるのは、Service Pack 3(10.0.4007.2012)が適用されている場合のみです。
2.実行時にスタイルを設定する方法
本事象は、SheetViewクラスのDefaultStyleプロパティを設定できない、という問題です。
したがいまして、デザイン時にスタイルを設定するのではなく、実行時(例:フォームのLoadイベント)にDefaultStyleプロパティを設定した場合、この問題は発生しません。
1.名前付きスタイルを使用する方法
スキンを使用している場合、そのスキンと関連付けられている名前付きスタイル(NamedStyleクラス)から設定情報を親スタイルとして取得し、デフォルト設定として使用しています。どの名前付きスタイルが関連付けられているかは、Parentプロパティから確認できます。
■DefaultStyle(データ表示部)のParentプロパティ

※Parentプロパティは、各要素ごとに存在します。
SheetViewクラスのDefaultStyleプロパティを直接を変更するのではなく、親スタイルである名前付きクラス側の設定を変更することで、本事象を回避することが可能です。
たとえば、上図のようにDefaultStyle(データ表示部)のParentプロパティが"DataAreaDefault"に設定されている場合に、セルの背景色(BackColorプロパティ)を変更する手順は、以下の通りとなります。
- フォーム上のSPREADコントロールまたはSheetオブジェクトを選択します。
- プロパティグリッドからNamedStyleプロパティを選択し、[...]ボタンをクリックします。

→[NamedStyle コレクション エディター]が表示されます。 - 左側の[メンバー(M):]一覧の中から設定したい名前付きスタイル(今回の場合、"DataAreaDefault")を選択し、右側のプロパティグリッドで値を変更してください。

なお、Parentプロパティに設定されている値と同じ名前のスタイルが[メンバー(M):]一覧に存在しない場合には、[追加(A)]ボタンをクリックしてスタイルを追加し、そのスタイルの名前(Nameプロパティ)をParentプロパティと同じ値(今回の場合、"DataAreaDefault")に設定してください。 - [OK]ボタンをクリックして、[NamedStyle コレクション エディター]を閉じてください。
→設定内容がデザイナ上に反映されます。
また、上記の方法を適用できるのは、Service Pack 3(10.0.4007.2012)が適用されている場合のみです。
2.実行時にスタイルを設定する方法
本事象は、SheetViewクラスのDefaultStyleプロパティを設定できない、という問題です。
したがいまして、デザイン時にスタイルを設定するのではなく、実行時(例:フォームのLoadイベント)にDefaultStyleプロパティを設定した場合、この問題は発生しません。
旧文書番号
41812