'宣言 Public ReadOnly Property VisibleRows As VisibleRowsCollection
public VisibleRowsCollection VisibleRows {get;}
このプロパティは、行スクロール領域に現在表示される Row オブジェクトへの参照を取得するために使用できる VisibleRows コレクションへの参照を返します。この参照を使用して、返されたコレクションのプロパティまたはメソッドだけでなく、コレクション内のオブジェクトのプロパティまたはメソッドにもアクセスできます。
行スクロール領域をスクロールすることによって行が表示されるか、または隠れると、その行に対応する Row オブジェクトが、このプロパティによって返される VisibleRows コレクションに追加されるか、またはそこから削除されます。
Hidden プロパティが True に設定されている行 (非表示の行) はコレクションに含まれません。
返される VisibleRows コレクションの Count プロパティは、行スクロール領域で現在表示される行の数を決定するために使用されます。
注: 表示可能な行コレクションには常に、画面からスクロールアウトされている 1 行下の行が含まれています。これは、行スクロール領域が 1 行下にスクロールされたときに表示される次の行を確認する際に役立ちます。表示行の範囲と、それらが画面上に実際に表示されるかどうかを確かめるには、使用例のセクションを参照してください。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Private Function IsRowVisible(ByVal row As Infragistics.Win.UltraWinGrid.UltraGridRow) As Boolean Dim rowElement As Infragistics.Win.UIElement = _ Me.UltraGrid1.DisplayLayout.UIElement.GetDescendant( _ GetType(Infragistics.Win.UltraWinGrid.RowUIElement), row) If Not Nothing Is rowElement Then ' You can also check if the row is horizontally scrolled out view by ' checking to see if the row rectangle intersects the grid's rectangle. ' If Not Rectangle.Intersect(Me.UltraGrid1.ClientRectangle, rowElement.Rect).IsEmpty Then Return True End If End If Return False End Function Private Function GetVisibleRowCount(ByVal visibleRows As Infragistics.Win.UltraWinGrid.VisibleRowsCollection) As Integer Dim visCount As Integer = 0 Dim vr As Infragistics.Win.UltraWinGrid.VisibleRow For Each vr In visibleRows If Me.IsRowVisible(vr.Row) Then visCount += 1 End If Next Return visCount End Function Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("" & Me.GetVisibleRowCount(UltraGrid1.DisplayLayout.RowScrollRegions(0).VisibleRows)) End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private bool IsRowVisible( Infragistics.Win.UltraWinGrid.UltraGridRow row ) { Infragistics.Win.UIElement rowElement = this.ultraGrid1.DisplayLayout.UIElement.GetDescendant( typeof( Infragistics.Win.UltraWinGrid.RowUIElement ), row ); if ( null != rowElement ) { // You can also check if the row is horizontally scrolled out view by // checking to see if the row rectangle intersects the grid's rectangle. // if ( ! Rectangle.Intersect( this.ultraGrid1.ClientRectangle, rowElement.Rect ).IsEmpty ) return true; } return false; } private int GetVisibleRowCount( Infragistics.Win.UltraWinGrid.VisibleRowsCollection visibleRows ) { int visCount = 0; foreach ( Infragistics.Win.UltraWinGrid.VisibleRow vr in visibleRows ) { if ( this.IsRowVisible( vr.Row ) ) visCount++; } return visCount; } private void button1_Click(object sender, System.EventArgs e) { MessageBox.Show( "" + this.GetVisibleRowCount( ultraGrid1.DisplayLayout.RowScrollRegions[0].VisibleRows ) ); }