コントロールの再描画の抑制
コントロールに変更を行う前に再描画を停止しておき、変更を適用し終わった後で描画を再開することでパフォーマンスを改善できます。再描画の停止と再開には次のメソッドを使用します。
これらのメソッドは、System.Windows.Forms.ListBoxやSystem.Windows.Forms.DataGridViewと同じです。
- GcMultiRow.SuspendLayoutメソッド(Control.SuspendLayoutメソッド)
- GcMultiRow.ResumeLayoutメソッド(Control.ResumeLayoutメソッド)
これらのメソッドは、System.Windows.Forms.ListBoxやSystem.Windows.Forms.DataGridViewと同じです。
不要な初期化
旧バージョンMultiRow for Windows Forms 5.0Jでは、設計時にGcMultiRowコントロールをフォームに配置したときに既定のテンプレートを自動的に割り当てる機能がありました。もし、実行時に直ちに異なるテンプレートを割り当てる場合、この処理は不要です。コントロールから既定のテンプレートを削除するには、プロパティウィンドウでGcMultiRow.Templateプロパティから"(なし)"を選択します。
6.0Jからは、この処理は削除されGcMultiRowコントロールはテンプレートがない状態で配置されます。既定のテンプレートが必要な場合は、スマートタグから"既定のテンプレート"を選択できます。
6.0Jからは、この処理は削除されGcMultiRowコントロールはテンプレートがない状態で配置されます。既定のテンプレートが必要な場合は、スマートタグから"既定のテンプレート"を選択できます。
セルの値へのアクセス
GcMultiRow.GetValueメソッドおよび GcMultiRow.SetValueメソッドはCell.Valueプロパティよりも効率的なアクセスを提供します。たとえば、次のコードは行とセルをインスタンス化しますが、
次のコードはコントロール内の値に直接アクセスします。
同様の機能に、次のものがあります。
次のコードはコントロール内の値に直接アクセスします。
同様の機能に、次のものがあります。
- Cell.SelectedプロパティとGcMultiRow.AddSelectionメソッドとRemoveSelectionメソッド、GcMultiRow.GetInheritedStateメソッド
- Cell.DisplayTextプロパティとGcMultiRow.GetDisplayTextメソッド
- Cell.EditedFormattedValueプロパティとGcMultiRow.GetEditedFormattedValueメソッド
- セルや行のプロパティとGcMultiRow.GetStateメソッド
行へのアクセス
セル数やセル型の参照など、すべての行で同一の情報を取得する場合、個々の行ではなくテンプレートの情報を参照すると高速に処理できます。
次のコードは、ヘッダ型セルを除くすべてのセルの値をnull(Visual BasicではNothing)にする場合の例です。
次のコードは、ヘッダ型セルを除くすべてのセルの値をnull(Visual BasicではNothing)にする場合の例です。
データソースの選択
大量のデータを処理する場合は、アンバウンドモードよりもバウンドモードのほうが効率的にデータを扱えます。
セルのスタイル
すべてのセルに同一のスタイルを適用する場合は、GcMultiRow.Rows[0].Cells[0].StyleプロパティよりもGcMultiRow.DefaultCellStyleのほうが効率的に処理できます。