作成日: 2022/01/21 最終更新日: 2022/02/24
文書種別
使用方法
詳細
ActiveX版のSPREADではRedrawプロパティを設定することで描画速度を向上させることができましたが、 .NET版では SuspendLayoutメソッドと ResumeLayoutメソッドを使用します。描画処理の直前にSuspendLayoutメソッドでコントロールの表示更新を一時停止させ、処理の後でResumeLayout(true)を実行してコントロールを再描画します。SuspendLayoutメソッド呼び出しによるコントロールの描画処理を一時的に中断させた後は、必ずResumeLayoutメソッド呼び出しによって描画処理を再開させる必要があります。
なお、描画を再開させる前にメッセージボックスやShowDialogメソッド呼び出しによる別フォームの表示を行った場合、処理のスコープが一時的にこれらに移ってしまいます。このため、他の処理の割り込みによって製品の内部設定処理に不整合が生じ、結果的にArgumentOutOfRangeExceptionにような例外が発生し、コントロールが赤い×印で表示される可能性があります。本機能を使用するには以下の注意が必要です。
◎サンプルコード(VB)
◎サンプルコード(C#)
なお、描画を再開させる前にメッセージボックスやShowDialogメソッド呼び出しによる別フォームの表示を行った場合、処理のスコープが一時的にこれらに移ってしまいます。このため、他の処理の割り込みによって製品の内部設定処理に不整合が生じ、結果的にArgumentOutOfRangeExceptionにような例外が発生し、コントロールが赤い×印で表示される可能性があります。本機能を使用するには以下の注意が必要です。
- SuspendLayoutメソッド~ResumeLayoutメソッド呼び出しの間はコントロールに対する設定のみを行う
- メッセージボックスや別フォームの表示など、スコープが移動する処理はこれらの間で行わない
- スクロールの状態が変化する処理は、SuspendLayoutメソッド~ResumeLayoutメソッドの外側で行う
◎サンプルコード(VB)
FpSpread1.SuspendLayout()
''ここに描画処理のコードを書く
FpSpread1.ResumeLayout(True)
''ここに描画処理のコードを書く
FpSpread1.ResumeLayout(True)
◎サンプルコード(C#)
fpSpread1.SuspendLayout();
//ここに描画処理のコードを書く
fpSpread1.ResumeLayout(true);
//ここに描画処理のコードを書く
fpSpread1.ResumeLayout(true);