作成日: 2022/01/21 最終更新日: 2022/07/20
文書種別
使用方法
詳細
広範囲に渡るセルの様々な属性を定義したうえでフォームへの適用を行うと、InitializeComponent()内にSPREADに関するコードが数多く自動生成されます。このコード量が多い場合、.NET Frameworkによって無効なプログラムと判断され、実行時に例外が発生する場合があります。
このような場合は、SPREADデザイナで自動生成されるコードを減らすことで改善できます。例えば、SPREADデザイナで特定のセルに属性を定義し、それをすべての行や列にコピーを行っている場合には、コピーを行った分だけ属性の情報が複製されます。これを減らすには、行単位や列単位で属性を設定する方法が考えられます。また、属性を定義した名前付きスタイルオブジェクトを作成し複数のセルに対して設定を行います。
上記対応でも改善が見られない場合には、シート(FpSpread1_Sheet1)のSerializeModelsプロパティを「True」に設定し、デザイン定義内容をリソースファイル(*.resx)上に出力させることで対応します。
このような場合は、SPREADデザイナで自動生成されるコードを減らすことで改善できます。例えば、SPREADデザイナで特定のセルに属性を定義し、それをすべての行や列にコピーを行っている場合には、コピーを行った分だけ属性の情報が複製されます。これを減らすには、行単位や列単位で属性を設定する方法が考えられます。また、属性を定義した名前付きスタイルオブジェクトを作成し複数のセルに対して設定を行います。
上記対応でも改善が見られない場合には、シート(FpSpread1_Sheet1)のSerializeModelsプロパティを「True」に設定し、デザイン定義内容をリソースファイル(*.resx)上に出力させることで対応します。
※ リソースファイルへの出力を行った場合は、同時に外部ファイル(xml形式)へのバックアップも取ることをお勧めします。
※旧スタイル(LegacyBehaviors = Style)の場合にはデザイン情報が既定でデザインファイルに出力されるため本対応が有効ですが、新しいスタイル(LegacyBehaviors ≠ Style)ではリソースファイルに出力されるため、本対応は無効です。
※.NET 6ではバイナリのシリアライズがサポートされていないため、 SerializeModelsプロパティはサポートされません。
【手順1】
Visual Studio デザイナ上で、フォーム下部に表示されているシートコントロールを選択します。(デフォルトではFpSpread1_Sheet1)
【手順2】
プロパティウィンドウのSerializeModels プロパティを「True」に変更します。
【手順3】
シート情報が自動生成コードではなくリソースファイル上へ出力されます。