MESCIUS SPREAD for Windows Forms 17.0J 移行ガイド
互換機能について

17.0Jには旧バージョンとの互換性の維持を目的とした、互換機能(以下、LegacyBehaviors列挙体)が用意されています。 LegacyBehaviors列挙体は、メンバとして定義されている値の組み合わせを設定することが可能で、該当する機能の動作を11.0J以前と同等にすることが可能です。また、Visual Studio上で新規にコントロールを配置した場合と、旧バージョンのプロジェクトを移行した場合で異なる動作となります。なお、これ以外にも動作が変わる変更点が存在しているため、手動による修正が必要になる場合があります。

LegacyBehaviors列挙体のメンバ
メンバ 説明
All KeepFormulaOnSetValueおよびPreferTextOnExportを除くすべてのメンバが指定された状態になります。
AutoRowHeight セルの値またはプロパティがSpreadのUIで変更されたとき、行の高さは自動調整されません。
CalculationEngine 以前の表計算エンジンが使用されます。
本メンバを未指定の場合の動作は「新しい表計算エンジン」をご確認ください。
None すべてのメンバが未指定の状態になり新しい動作が有効になります。
PropertyDefaults 一部のプロパティの(変更された)初期値が、前のバージョンと同じになります。
Protect SheetView.ProtectプロパティがTrue、セルのロック状態を示すStyleInfo.LockedがFalseになります。
Style 以前のスタイルシステムが使用されます。
本メンバを未指定の場合の動作は「新しいスタイルシステム 」をご確認ください。
KeepFormulaOnSetValue コーディングやペーストでセルに値が設定された時に、数式をクリアせずに維持しErrorイベントを発生させます。
PreferTextOnExport セルがオブジェクトを保持しているときにオブジェクトではなくテキストをExcelに出力します。
新規にツールボックスからコントロールを配置した場合

デザインファイル(*.Designer.cs または *.Designer.vb)のFpSpreadコンストラクタの引数としてLegacyBehaviors.Noneが指定されます。この場合、すべてのメンバが未指定の状態になり新しい動作が有効になります。

this.fpSpread1 = new FarPoint.Win.Spread.FpSpread(FarPoint.Win.Spread.LegacyBehaviors.None);
旧バージョンのプロジェクトを移行した場合

旧バージョンのFarPoint.Win.Spread.FpSpreadクラスには、引数の設定が可能なコンストラクタは存在しません。つまり旧バージョンで作成したプロジェクトに含まれるFarPoint.Win.Spread.FpSpreadコンストラクタは次のような引数がない状態になります。

this.fpSpread1 = new FarPoint.Win.Spread.FpSpread();

17.0Jでは引数を持たないFarPoint.Win.Spread.FpSpreadコンストラクタは、内部的にLegacyBehaviors.Allが指定された状態と解釈されます。そのため旧バージョンのプロジェクトを移行した際には、すべてのメンバが指定された状態になり互換性を最大限維持した動作になります。

互換機能の設定を変更する
  • LegacyBehaviors列挙体はFpSpreadコンストラクタの引数として指定が可能で、コントロールの生成のタイミングでのみ設定が可能です。アプリケーションの実行後に動的に値を変更することはできません。
  • LegacyBehaviorsを変更する際にはアプリケーションをバックアップの上で行ってください。LegacyBehaviorsは各種スタイルや動作と紐づいておりLegacyBehaviorsの値を変更後に戻しても、アプリケーションの状態が同一にならない場合があります。

互換機能の設定を変更する場合には、Visual Studioのデザイン画面を開き、SPREADコントロールのプロパティグリッドを表示してください。LegacyBehaviorsプロパティの項目にあるドロップダウンから値を変更することが可能です。

セルのロックについて

SPREADでは、シートのProtectプロパティとセルのLockedプロパティを使用することでセルをロックすることが可能ですが、 LegacyBehaviors.Protectメンバによりセルのロック動作を変更することが可能です。

プロパティ名 LegacyBehaviors.Protectを含まない場合 LegacyBehaviors.Protectを含む場合
SheetView.Protect False True
StyleInfo.Locked True False

シートのProtectプロパティとセルのLockedプロパティの既定値(デフォルト値)が11.0Jと10.0J以前で異なりますが、 10.0J以前から移行を行う場合には、LegacyBehaviors.Protectを含んだLegacyBehaviors.Allの状態になりますのでロックの状態は維持されます。

プロパティ名 11.0Jの既定値 10.0J以前の既定値
SheetView.Protect False True
StyleInfo.Locked True False

なお、11.0Jから移行を行いロックの既定値(デフォルト値)を使用している場合には、プロジェクトの移行後に手動でLegacyBehaviors.Protectを外す対応が必要になります。

ナレッジベースにも旧バージョンからの移行の際のロックに関する注意点を記載しています。

旧バージョンから移行するとセルや列のLockedプロパティがTrueに変化する

 

 


© MESCIUS inc. All rights reserved.