Public Class Form1 Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown ListView1.Dock = DockStyle.Fill 'ListViewをフォームいっぱいに広げます。 ListView1.Columns.Add("MainItem").Width = 500 '幅500のMainItem列を追加します。 ListView1.OwnerDraw = True 'オーナードローを有効にします。 ListView1.VirtualMode = True '仮想モードを有効にします。 ListView1.VirtualListSize = 1000 '仮想項目数を1000にします。 ListView1.View = View.Details '詳細モードにします。 End Sub Private Sub ListView1_RetrieveVirtualItem(sender As Object, e As RetrieveVirtualItemEventArgs) Handles ListView1.RetrieveVirtualItem '表示される項目のセット(毎回項目を新規作成しています。) Dim item1 As New ListViewItem("Main" & e.ItemIndex) e.Item = item1 End Sub Private Sub ListView1_DrawItem(sender As Object, e As DrawListViewItemEventArgs) Handles ListView1.DrawItem '▼背景の描画 Dim isEven As Boolean = (e.ItemIndex Mod 2 = 0) If isEven Then '偶数インデックスの項目は背景をベージュにします。 e.Graphics.FillRectangle(Brushes.Beige, e.Bounds) End If '▼文字の描画 Dim isSelected As Boolean = ListView1.SelectedIndices.Contains(e.ItemIndex) If isSelected Then '選択されている項目は赤い字で描画します。 e.Graphics.DrawString(e.Item.Text, ListView1.Font, Brushes.Red, e.Bounds) Else '選択されていない項目は既定の描画を行います。 e.DrawText() End If End Sub Private Sub ListView1_MouseUp(sender As Object, e As MouseEventArgs) Handles ListView1.MouseUp Dim mousedItem As ListViewItem = ListView1.GetItemAt(e.X, e.Y) If mousedItem Is Nothing Then Return End If MsgBox(mousedItem.Text & " 選択時の処理") End Sub End Class