Imports Infragistics.Win.UltraWinListView
Imports Infragistics.Win
...
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: このコードの行は 'NWindDataSet.Customers' テーブルにデータをロードします。
' 必要に応じて、移動や削除ができます。
Me.CustomersTableAdapter.Fill(Me.NWindDataSet.Customers)
' コントロールの View プロパティを 'Tiles' に設定します。
Me.UltraListView1.View = UltraListViewStyle.Tiles
' SubItems(およびそれぞれの列)が列をサポートしている
' ビューにデフォルトで表示されるように、
' また列名とサブアイテムの値がデフォルトでツールチップに
'表示されないように、一部のプロパティを設定します。
Me.UltraListView1.ViewSettingsDetails.SubItemColumnsVisibleByDefault = True
Me.UltraListView1.ViewSettingsTiles.SubItemsVisibleByDefault = True
Me.UltraListView1.ItemSettings.SubItemsVisibleInToolTipByDefault = False
' 非表示になる列の名前を
' ArrayList に追加します。
Dim hiddenColumns As ArrayList = New ArrayList(4)
hiddenColumns.Add("ContactName")
hiddenColumns.Add("ContactTitle")
hiddenColumns.Add("Phone")
hiddenColumns.Add("Fax")
' テーブルの Columns コレクションを反復処理し、
' メンバをテーブルの各フィールドごとに WinListView コントロールの
' SubItemColumns コレクションに追加します。
Dim dataColumn As DataColumn
For Each dataColumn In Me.NWindDataSet.Tables("Customers").Columns
' 'CustomerID' フィールドの SubItemColumn は追加しません。
' この値をアイテムの Tag に代入します。
If (dataColumn.ColumnName = "CustomerID") Then
ElseIf (dataColumn.ColumnName = "CompanyName") Then
' 'CustomerName' フィールドの SubItemColumn は追加しません。
' このフィールドは、コントロールの MainColumn によって表されます。
Dim mainColumn As UltraListViewMainColumn = Me.UltraListView1.MainColumn
mainColumn.Text = "Company Name"
mainColumn.DataType = dataColumn.DataType
Else
' 他のすべてのフィールドでは、メンバを
' SubItemColumns コレクションに追加します。
Dim subItemColumn As UltraListViewSubItemColumn
subItemColumn = Me.UltraListView1.SubItemColumns.Add(dataColumn.ColumnName)
subItemColumn.DataType = dataColumn.DataType
End If
Next
' 非表示にされる列の適切なプロパティを
' Details ビューまたは Tiles ビューで表示されないように設定します。
' これをツールチップに表示されるようにします。
Dim i As Integer
For i = 0 To hiddenColumns.Count - 1
Dim hiddenColumn As String = hiddenColumns(i)
Dim subItemColumn As UltraListViewSubItemColumn = Me.UltraListView1.SubItemColumns(hiddenColumn)
subItemColumn.VisibleInDetailsView = DefaultableBoolean.False
subItemColumn.VisibleInTilesView = DefaultableBoolean.False
subItemColumn.VisibleInToolTip = DefaultableBoolean.True
subItemColumn.VisiblePositionInToolTip = i
Next
' テーブルの Rows コレクションを反復処理し、項目を
' テーブルの各行の WinListView コントロールの Items コレクションに
' 追加します。
For i = 0 To Me.NWindDataSet.Tables("Customers").Rows.Count - 1
Dim row As DataRow = Me.NWindDataSet.Tables("Customers").Rows(i)
' この行のフィールド値を個別に処理します。
Dim customerID As String = row("CustomerID")
Dim companyName As String = row("CompanyName")
Dim contactName As Object = row("ContactName")
Dim contactTitle As Object = row("ContactTitle")
Dim address As Object = row("Address")
Dim city As Object = row("City")
Dim region As Object = row("Region")
Dim postalCode As Object = row("PostalCode")
Dim country As Object = row("Country")
Dim phone As Object = row("Phone")
Dim fax As Object = row("Fax")
' 項目を WinListView コントロールの Items コレクションに追加します。このとき
' CustomerID フィールドの値を項目の Key として使用し、
' CompanyName フィールドの値を項目の Value として使用します。
Dim item As UltraListViewItem = Me.UltraListView1.Items.Add(customerID, companyName)
' フィールド値を対応する UltraListViewSubItem の Value プロパティに
' 代入します。
item.SubItems("ContactName").Value = contactName
item.SubItems("ContactTitle").Value = contactTitle
item.SubItems("Address").Value = address
item.SubItems("City").Value = city
item.SubItems("Region").Value = region
item.SubItems("PostalCode").Value = postalCode
item.SubItems("Country").Value = country
item.SubItems("Phone").Value = phone
item.SubItems("Fax").Value = fax
Next
End Sub