セルは遅延して割り当てられます。アクセスされると、遅延して割り当てられます。ただし、いったんセルが割り当てられると、行が削除されるまで参照されます。このメソッドを使用して、割り当てられているセルへの参照をリリースします。次回アクセスされる時に再割り当てされることに注意してください。
このメソッドの使用は、すべてのセルをデフォルト設定にリセットすることです。行のセルでいくつかの設定を行い、これらの設定をクリアしたい場合には、このメソッドを使用して、セル コレクションを単にクリアすることができます。これは、セルへの参照がリリースされているためにメモリの使用が改善されるというひとつの利点が追加されますが、行のすべてのセルをリセットしたことと同じ効果があります。次回アクセスされるときにセルが再度割り当てられることに注意してください。このメソッドは、RowsCollection で同様に公開されるため、この操作を同様に行コレクション全体で実行できます。
注: この行のセルのひとつが現在のアクティブ セルである、または選択されているセルである場合、グリッドの ActiveCell プロパティとしてコレクションからクリアされません (または選択されているセルの場合には SelectedCellsCollection)。このようなセルはクリアされません。これらはセル コレクションの一部のままです。ただし、設定がリセットされます。つまり、最終結果は同じになります。
ClearCells の後のこの行からのセルへの参照は無効と見なされることに注意してください(上記のようにアクティブ セルと選択されているセルを除く)。セル コレクション自体がリリースされ、これも遅延して割り当てされます。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button1.Click Dim row As UltraGridRow = Me.ultraGrid1.Rows(4) Dim column As UltraGridColumn = row.Band.Columns("CustomerID") ' UltraGrid lazily allocates cells as they are accessed. ' If the cell hasn't been accessed yet, HasCell will return false. Debug.WriteLine("Cell Allocated? " & row.HasCell(column)) ' Accessing the cell will cause the UltraGrid to allocate it. Dim cell As UltraGridCell = row.Cells(column) ' Since we accessed the cell above causing it be allocated, HasCell ' will return true. Debug.WriteLine("Cell Allocated? " & row.HasCell(column)) ' You can cause the grid to release references to cells by calling ' DeallocateCells. This also means that any cell specific settings ' will be cleared. row.DeallocateCells() ' HasCell will return false since we've de-allocated cells. Debug.WriteLine("Cell Allocated? " & row.HasCell(column)) End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void button1_Click(object sender, System.EventArgs e) { UltraGridRow row = this.ultraGrid1.Rows[4]; UltraGridColumn column = row.Band.Columns[ "CustomerID" ]; // UltraGrid lazily allocates cells as they are accessed. // If the cell hasn't been accessed yet, HasCell will return false. Debug.WriteLine( "Cell Allocated? " + row.HasCell( column ) ); // Accessing the cell will cause the UltraGrid to allocate it. UltraGridCell cell = row.Cells[ column ]; // Since we accessed the cell above causing it be allocated, HasCell // will return true. Debug.WriteLine( "Cell Allocated? " + row.HasCell( column ) ); // You can cause the grid to release references to cells by calling // DeallocateCells. This also means that any cell specific settings // will be cleared. row.DeallocateCells( ); // HasCell will return false since we've de-allocated cells. Debug.WriteLine( "Cell Allocated? " + row.HasCell( column ) ); }