Key プロパティが一意のユーザー定義のオブジェクト識別文字列で、コードを使用してアクセスする時にオブジェクトの Index と交互に使用できます。コレクション内で一意でない値を Key プロパティに割り当てようとすると、エラーが発生します。
オブジェクトの追加または削除時など、コレクション内のオブジェクトが並べ替えられるときに、オブジェクトの Index プロパティの値は変更できます。Index プロパティが動的に変化すると想定される場合は、Key プロパティを使用してコレクション内のオブジェクトを参照します。また、Key プロパティを使用してコレクション内のオブジェクトに意味のある名前を割り当てることで、プログラムを「自己文書化」することができます。
オブジェクトをコレクションに追加するために Add メソッドを使用するとき Key プロパティを設定できます。場合によっては、そのオブジェクトがコレクションに表示しない場合、オブジェクトの Key プロパティはブランクになる場合があります。
さらに、キーの一意性は、Key プロパティが値に設定された時に限って強制されます。コレクションがブランク キーを持つオブジェクトをサポートする場合、そのコレクションにはKey プロパティが空の複数のオブジェクトが含まれる場合があります。その場合、Index プロパティを使用して、ブランク キーを持つオブジェクト間を差別化する必要があります。
Imports Infragistics.Shared Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid Imports System.Diagnostics Private Sub Button32_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button32.Click ' Check if there is an active cell. If Not Me.ultraGrid1.ActiveCell Is Nothing Then ' Print out the the column key and the row index of the active cell. Debug.WriteLine("ActiveCell's column = " & Me.ultraGrid1.ActiveCell.Column.Key & ", Row Index = " & Me.ultraGrid1.ActiveCell.Row.Index.ToString()) Else Debug.WriteLine("There is no active cell.") End If End Sub
using Infragistics.Shared; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System.Diagnostics; private void button32_Click(object sender, System.EventArgs e) { // Check if there is an active cell. if ( this.ultraGrid1.ActiveCell != null ) { // Print out the the column key and the row index of the active cell. Debug.WriteLine( "ActiveCell's column = " + this.ultraGrid1.ActiveCell.Column.Key + ", Row Index = " + this.ultraGrid1.ActiveCell.Row.Index.ToString( ) ); } else { Debug.WriteLine( "There is no active cell." ); } }