VB.Net by API/System.Windows.Forms/ListViewItem

Материал из VB Эксперт
Перейти к: навигация, поиск

ListViewItem.ImageIndex

<source lang="vbnet"> Imports System Imports System.Collections Imports System.Data Imports System.Drawing Imports System.Windows.Forms Imports System.ruponentModel Imports System.Drawing.Drawing2D Imports System.IO Public Class MainClass

   Shared Sub Main()
       Dim form1 As Form = New Form1
       Application.Run(form1)
   End Sub

End Class


Public Class Form1

   Inherits System.Windows.Forms.Form
  1. Region " Windows Form Designer generated code "
   Public Sub New()
       MyBase.New()
       "This call is required by the Windows Form Designer.
       InitializeComponent()
       "Add any initialization after the InitializeComponent() call
   End Sub
   "Form overrides dispose to clean up the component list.
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing Then
           If Not (components Is Nothing) Then
               components.Dispose()
           End If
       End If
       MyBase.Dispose(disposing)
   End Sub
   Friend WithEvents cmdFillList As System.Windows.Forms.Button
   Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
   Friend WithEvents optSmallIcon As System.Windows.Forms.RadioButton
   Friend WithEvents optLargeIcon As System.Windows.Forms.RadioButton
   Friend WithEvents optDetails As System.Windows.Forms.RadioButton
   Friend WithEvents optList As System.Windows.Forms.RadioButton
   Friend WithEvents listAuthors As System.Windows.Forms.ListView
   Private components As System.ruponentModel.IContainer
   "Required by the Windows Form Designer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
       Me.ruponents = New System.ruponentModel.Container()
       Me.GroupBox1 = New System.Windows.Forms.GroupBox()
       Me.optLargeIcon = New System.Windows.Forms.RadioButton()
       Me.optList = New System.Windows.Forms.RadioButton()
       Me.optDetails = New System.Windows.Forms.RadioButton()
       Me.optSmallIcon = New System.Windows.Forms.RadioButton()
       Me.listAuthors = New System.Windows.Forms.ListView()
       Me.cmdFillList = New System.Windows.Forms.Button()
       Me.GroupBox1.SuspendLayout()
       Me.SuspendLayout()
       "
       "GroupBox1
       "
       Me.GroupBox1.Anchor = (System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right)
       Me.GroupBox1.Controls.AddRange(New System.Windows.Forms.Control() {Me.optLargeIcon, Me.optList, Me.optDetails, Me.optSmallIcon})
       Me.GroupBox1.FlatStyle = System.Windows.Forms.FlatStyle.System
       Me.GroupBox1.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.GroupBox1.Location = New System.Drawing.Point(276, 12)
       Me.GroupBox1.Name = "GroupBox1"
       Me.GroupBox1.Size = New System.Drawing.Size(104, 132)
       Me.GroupBox1.TabIndex = 2
       Me.GroupBox1.TabStop = False
       Me.GroupBox1.Text = "View"
       "
       "optLargeIcon
       "
       Me.optLargeIcon.Checked = True
       Me.optLargeIcon.FlatStyle = System.Windows.Forms.FlatStyle.System
       Me.optLargeIcon.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.optLargeIcon.Location = New System.Drawing.Point(16, 48)
       Me.optLargeIcon.Name = "optLargeIcon"
       Me.optLargeIcon.Size = New System.Drawing.Size(76, 16)
       Me.optLargeIcon.TabIndex = 0
       Me.optLargeIcon.TabStop = True
       Me.optLargeIcon.Text = "LargeIcon"
       "
       "optList
       "
       Me.optList.FlatStyle = System.Windows.Forms.FlatStyle.System
       Me.optList.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.optList.Location = New System.Drawing.Point(16, 96)
       Me.optList.Name = "optList"
       Me.optList.Size = New System.Drawing.Size(56, 16)
       Me.optList.TabIndex = 0
       Me.optList.Text = "List"
       "
       "optDetails
       "
       Me.optDetails.FlatStyle = System.Windows.Forms.FlatStyle.System
       Me.optDetails.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.optDetails.Location = New System.Drawing.Point(16, 72)
       Me.optDetails.Name = "optDetails"
       Me.optDetails.Size = New System.Drawing.Size(72, 16)
       Me.optDetails.TabIndex = 0
       Me.optDetails.Text = "Details"
       "
       "optSmallIcon
       "
       Me.optSmallIcon.FlatStyle = System.Windows.Forms.FlatStyle.System
       Me.optSmallIcon.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.optSmallIcon.Location = New System.Drawing.Point(16, 24)
       Me.optSmallIcon.Name = "optSmallIcon"
       Me.optSmallIcon.Size = New System.Drawing.Size(72, 16)
       Me.optSmallIcon.TabIndex = 0
       Me.optSmallIcon.Text = "SmallIcon"
       "
       "listAuthors
       "
       Me.listAuthors.Activation = System.Windows.Forms.ItemActivation.OneClick
       Me.listAuthors.AllowColumnReorder = True
       Me.listAuthors.Anchor = (((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
                   Or System.Windows.Forms.AnchorStyles.Left) _
                   Or System.Windows.Forms.AnchorStyles.Right)
       Me.listAuthors.GridLines = True
       Me.listAuthors.HoverSelection = True
       Me.listAuthors.Location = New System.Drawing.Point(8, 8)
       Me.listAuthors.Name = "listAuthors"
       Me.listAuthors.Size = New System.Drawing.Size(260, 332)
       Me.listAuthors.Sorting = System.Windows.Forms.SortOrder.Ascending
       Me.listAuthors.TabIndex = 0
       "
       "cmdFillList
       "
       Me.cmdFillList.Anchor = (System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right)
       Me.cmdFillList.FlatStyle = System.Windows.Forms.FlatStyle.System
       Me.cmdFillList.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.cmdFillList.Location = New System.Drawing.Point(276, 152)
       Me.cmdFillList.Name = "cmdFillList"
       Me.cmdFillList.Size = New System.Drawing.Size(104, 24)
       Me.cmdFillList.TabIndex = 1
       Me.cmdFillList.Text = "Fill List"
       "
       "ListViewExample
       "
       Me.AutoScaleBaseSize = New System.Drawing.Size(5, 14)
       Me.ClientSize = New System.Drawing.Size(388, 349)
       Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.GroupBox1, Me.cmdFillList, Me.listAuthors})
       Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.Name = "ListViewExample"
       Me.Text = "ListView Example"
       Me.GroupBox1.ResumeLayout(False)
       Me.ResumeLayout(False)
   End Sub
  1. End Region
   Private Sub cmdFillList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdFillList.Click
       listAuthors.BeginUpdate()
       Dim dt As DataTable = StoreDB.GetProducts()
       Dim dr As DataRow
       For Each dr In dt.Rows
           Dim listItem As New ListViewItem(dr("book").ToString)
           listItem.ImageIndex = 0
           listItem.SubItems.Add(dr("title"))
           listAuthors.Items.Add(listItem)
       Next
       listAuthors.Columns.Add("title", 100, HorizontalAlignment.Left)
       listAuthors.EndUpdate()
   End Sub
   Private Sub NewView(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles optSmallIcon.CheckedChanged, optDetails.CheckedChanged, _
optLargeIcon.CheckedChanged, optList.CheckedChanged
       listAuthors.View = CType(sender, Control).Tag
       Me.Text = "Using View: " & listAuthors.View.ToString
   End Sub
   Private Sub ListViewExample_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       optLargeIcon.Tag = View.LargeIcon
       optSmallIcon.Tag = View.SmallIcon
       optDetails.Tag = View.Details
       optList.Tag = View.List
       Call cmdFillList_Click(Nothing, Nothing)
   End Sub
   Private Sub listAuthors_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles listAuthors.ColumnClick
       listAuthors.ListViewItemSorter = New CompareListViewItems(e.Column)
       listAuthors.Sort()
   End Sub

End Class Public Class CompareListViewItems

   Implements IComparer
   Public ReadOnly Column As Integer
   Public Sub New(ByVal columnIndex As Integer)
       Column = columnIndex
   End Sub
   Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.rupare
       Dim ListX As ListViewItem = CType(x, ListViewItem)
       Dim ListY As ListViewItem = CType(y, ListViewItem)
       If ListX.SubItems(Column).Text > ListY.SubItems(Column).Text Then
           Return 1
       ElseIf ListX.SubItems(Column).Text = ListY.SubItems(Column).Text Then
           Return 0
       Else
           Return -1
       End If
   End Function

End Class Public Class StoreDB

   Public Shared Function GetProducts() As DataTable
       Dim dsStore As New DataSet()
       dsStore.ReadXmlSchema("book.xdr")
       dsStore.ReadXml("book.xml")
       Return dsStore.Tables("books")
   End Function

End Class


 </source>


ListViewItem.SubItems.Add

<source lang="vbnet">

Imports System.Drawing Imports System.Drawing.Drawing2D Imports System.Windows.Forms public class ListViewIllustration

  public Shared Sub Main
       Application.Run(New Form1)
  End Sub

End class Public Class Form1

   Private Sub btnPopulate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPopulate.Click
       Dim intWidth As Integer
       Dim objItem As ListViewItem
       "Set the default view.
       ListView1.View = View.Details
       optDetails.Checked = True
       "Add the column headers.
       intWidth = ListView1.Width - 5
       ListView1.Columns.Add("Name", CInt(intWidth / 4))
       ListView1.Columns.Add("Address", CInt(intWidth / 4))
       ListView1.Columns.Add("Phone", CInt(intWidth / 4))
       ListView1.Columns.Add("FAX", CInt(intWidth / 4))
       "Add some list view items.
       objItem = ListView1.Items.Add("AAAAA")
       With objItem
           .SubItems.Add("123 Main St.")
           .SubItems.Add("555-555-5555")
           .SubItems.Add("555-555-5555")
           .ImageIndex = 0
       End With
       objItem = ListView1.Items.Add("BBBBB")
       With objItem
           .SubItems.Add("456 Main St.")
           .SubItems.Add("555-555-5555")
           .SubItems.Add("555-555-5555")
           .ImageIndex = 0
       End With
   End Sub
   Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
       Dim strItemText As String
       Dim objItem As ListViewItem
       "Add some list view items.
       strItemText = "name:"
       objItem = ListView1.Items.Add(strItemText)
       With objItem
           .SubItems.Add("123 Some St.")
           .SubItems.Add("555-555-5555")
           .SubItems.Add("555-555-5555")
           .ImageIndex = 0
       End With
   End Sub
   Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
       ListView1.Items.Clear()
   End Sub
   
   Private Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemove.Click
       Dim objListItem As ListViewItem
       For Each objListItem In ListView1.SelectedItems
           objListItem.Remove()
       Next objListItem
   End Sub
   Private Sub btnDisplayItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplayItem.Click
       Dim strMessage As String
       Dim objListItem As ListViewItem
       If ListView1.SelectedItems.Count > 0 Then
           objListItem = ListView1.SelectedItems(0)
           With objListItem
               strMessage = "NAME: " & .Text & vbCrLf & _
                            "ADDRESS: " & .SubItems(1).Text & vbCrLf & _
                            "PHONE: " & .SubItems(2).Text & vbCrLf & _
                            "FAX: " & .SubItems(3).Text
           End With
           MsgBox(strMessage)
       End If
   End Sub
  
   Private Sub optLargeIcon_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optLargeIcon.CheckedChanged
       ListView1.View = View.LargeIcon
   End Sub
   Private Sub optSmallIcon_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optSmallIcon.CheckedChanged
       ListView1.View = View.SmallIcon
   End Sub
   Private Sub optList_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optList.CheckedChanged
       ListView1.View = View.List
   End Sub
   Private Sub optTile_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optTile.CheckedChanged
       ListView1.View = View.Tile
   End Sub
   Private Sub optDetails_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optDetails.CheckedChanged
       ListView1.View = View.Details
   End Sub

End Class Partial Public Class Form1

   Inherits System.Windows.Forms.Form
   <System.Diagnostics.DebuggerNonUserCode()> _
   Public Sub New()
       MyBase.New()
       "This call is required by the Windows Form Designer.
       InitializeComponent()
   End Sub
   "Form overrides dispose to clean up the component list.
   <System.Diagnostics.DebuggerNonUserCode()> _
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing AndAlso components IsNot Nothing Then
           components.Dispose()
       End If
       MyBase.Dispose(disposing)
   End Sub
   "Required by the Windows Form Designer
   Private components As System.ruponentModel.IContainer
   "NOTE: The following procedure is required by the Windows Form Designer
   "It can be modified using the Windows Form Designer.  
   "Do not modify it using the code editor.
   <System.Diagnostics.DebuggerStepThrough()> _
   Private Sub InitializeComponent()
       Me.ruponents = New System.ruponentModel.Container
       Me.ListView1 = New System.Windows.Forms.ListView
       Me.btnPopulate = New System.Windows.Forms.Button
       Me.GroupBox1 = New System.Windows.Forms.GroupBox
       Me.optDetails = New System.Windows.Forms.RadioButton
       Me.optTile = New System.Windows.Forms.RadioButton
       Me.optList = New System.Windows.Forms.RadioButton
       Me.optSmallIcon = New System.Windows.Forms.RadioButton
       Me.optLargeIcon = New System.Windows.Forms.RadioButton
       Me.btnAdd = New System.Windows.Forms.Button
       Me.btnRemove = New System.Windows.Forms.Button
       Me.btnClear = New System.Windows.Forms.Button
       Me.btnDisplayItem = New System.Windows.Forms.Button
       Me.GroupBox1.SuspendLayout()
       Me.SuspendLayout()
       "
       "ListView1
       "
       Me.ListView1.FullRowSelect = True
       Me.ListView1.Location = New System.Drawing.Point(17, 18)
       Me.ListView1.Name = "ListView1"
       Me.ListView1.Size = New System.Drawing.Size(342, 364)
       Me.ListView1.TabIndex = 0
       Me.ListView1.UseCompatibleStateImageBehavior = False
       "
       "btnPopulate
       "
       Me.btnPopulate.Location = New System.Drawing.Point(366, 239)
       Me.btnPopulate.Name = "btnPopulate"
       Me.btnPopulate.Size = New System.Drawing.Size(161, 23)
       Me.btnPopulate.TabIndex = 2
       Me.btnPopulate.Text = "Populate"
       "
       "GroupBox1
       "
       Me.GroupBox1.Controls.Add(Me.optDetails)
       Me.GroupBox1.Controls.Add(Me.optTile)
       Me.GroupBox1.Controls.Add(Me.optList)
       Me.GroupBox1.Controls.Add(Me.optSmallIcon)
       Me.GroupBox1.Controls.Add(Me.optLargeIcon)
       Me.GroupBox1.Location = New System.Drawing.Point(370, 13)
       Me.GroupBox1.Name = "GroupBox1"
       Me.GroupBox1.Size = New System.Drawing.Size(156, 166)
       Me.GroupBox1.TabIndex = 1
       Me.GroupBox1.TabStop = False
       Me.GroupBox1.Text = "Views"
       "
       "optDetails
       "
       Me.optDetails.AutoSize = True
       Me.optDetails.Location = New System.Drawing.Point(30, 126)
       Me.optDetails.Name = "optDetails"
       Me.optDetails.Size = New System.Drawing.Size(57, 17)
       Me.optDetails.TabIndex = 4
       Me.optDetails.Text = "Details"
       "
       "optTile
       "
       Me.optTile.AutoSize = True
       Me.optTile.Location = New System.Drawing.Point(30, 102)
       Me.optTile.Name = "optTile"
       Me.optTile.Size = New System.Drawing.Size(42, 17)
       Me.optTile.TabIndex = 3
       Me.optTile.Text = "Tile"
       "
       "optList
       "
       Me.optList.AutoSize = True
       Me.optList.Location = New System.Drawing.Point(30, 78)
       Me.optList.Name = "optList"
       Me.optList.Size = New System.Drawing.Size(41, 17)
       Me.optList.TabIndex = 2
       Me.optList.Text = "List"
       "
       "optSmallIcon
       "
       Me.optSmallIcon.AutoSize = True
       Me.optSmallIcon.Location = New System.Drawing.Point(30, 54)
       Me.optSmallIcon.Name = "optSmallIcon"
       Me.optSmallIcon.Size = New System.Drawing.Size(79, 17)
       Me.optSmallIcon.TabIndex = 1
       Me.optSmallIcon.Text = "Small Icons"
       "
       "optLargeIcon
       "
       Me.optLargeIcon.AutoSize = True
       Me.optLargeIcon.Location = New System.Drawing.Point(30, 30)
       Me.optLargeIcon.Name = "optLargeIcon"
       Me.optLargeIcon.Size = New System.Drawing.Size(81, 17)
       Me.optLargeIcon.TabIndex = 0
       Me.optLargeIcon.Text = "Large Icons"
       "
       "btnAdd
       "
       Me.btnAdd.Location = New System.Drawing.Point(365, 269)
       Me.btnAdd.Name = "btnAdd"
       Me.btnAdd.Size = New System.Drawing.Size(161, 23)
       Me.btnAdd.TabIndex = 3
       Me.btnAdd.Text = "Add"
       "
       "btnRemove
       "
       Me.btnRemove.Location = New System.Drawing.Point(366, 299)
       Me.btnRemove.Name = "btnRemove"
       Me.btnRemove.Size = New System.Drawing.Size(161, 23)
       Me.btnRemove.TabIndex = 4
       Me.btnRemove.Text = "Remove"
       "
       "btnClear
       "
       Me.btnClear.Location = New System.Drawing.Point(365, 329)
       Me.btnClear.Name = "btnClear"
       Me.btnClear.Size = New System.Drawing.Size(161, 23)
       Me.btnClear.TabIndex = 5
       Me.btnClear.Text = "Clear"
       "
       "btnDisplayItem
       "
       Me.btnDisplayItem.Location = New System.Drawing.Point(365, 359)
       Me.btnDisplayItem.Name = "btnDisplayItem"
       Me.btnDisplayItem.Size = New System.Drawing.Size(161, 23)
       Me.btnDisplayItem.TabIndex = 6
       Me.btnDisplayItem.Text = "Display Item"
       "
       "Form1
       "
       Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
       Me.ClientSize = New System.Drawing.Size(539, 394)
       Me.Controls.Add(Me.btnDisplayItem)
       Me.Controls.Add(Me.btnClear)
       Me.Controls.Add(Me.btnRemove)
       Me.Controls.Add(Me.btnAdd)
       Me.Controls.Add(Me.GroupBox1)
       Me.Controls.Add(Me.btnPopulate)
       Me.Controls.Add(Me.ListView1)
       Me.Name = "Form1"
       Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
       Me.Text = "ListView"
       Me.GroupBox1.ResumeLayout(False)
       Me.GroupBox1.PerformLayout()
       Me.ResumeLayout(False)
   End Sub
   Friend WithEvents ListView1 As System.Windows.Forms.ListView
   Friend WithEvents btnPopulate As System.Windows.Forms.Button
   Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
   Friend WithEvents optDetails As System.Windows.Forms.RadioButton
   Friend WithEvents optTile As System.Windows.Forms.RadioButton
   Friend WithEvents optList As System.Windows.Forms.RadioButton
   Friend WithEvents optSmallIcon As System.Windows.Forms.RadioButton
   Friend WithEvents optLargeIcon As System.Windows.Forms.RadioButton
   Friend WithEvents btnAdd As System.Windows.Forms.Button
   Friend WithEvents btnRemove As System.Windows.Forms.Button
   Friend WithEvents btnClear As System.Windows.Forms.Button
   Friend WithEvents btnDisplayItem As System.Windows.Forms.Button
   Friend WithEvents ImageList1 As System.Windows.Forms.ImageList

End Class


 </source>