1. 程式人生 > >VB.NET 中 使用 ListView 控制元件的簡單例子

VB.NET 中 使用 ListView 控制元件的簡單例子

Class Form6
    
''' <summary>
''' 英雄類
''' </summary>
''' <remarks></remarks>
PublicClass hero
        
Private s_name AsString
        
Private s_age AsLong
        
Private s_like AsString
        
PublicProperty myName() AsString
            
Get
                
Return
 s_name
            
EndGet
            
Set(ByVal value AsString)
                s_name 
= value
            
EndSet
        
End Property

        
PublicProperty myAge() AsLong
            
Get
                
Return s_age
            
EndGet
            
Set(ByVal value AsLong)
                s_age 
= value
            
EndSet
        
End Property

        
PublicProperty myLike() AsString
            
Get
                
Return s_like
            
EndGet
            
Set(ByVal value AsString)
                s_like 
= value
            
EndSet
        
End Property

    
End Class

    
''' <summary>

''' 公共屬性
''' </summary>
''' <remarks></remarks>
Dim arrLike() AsString= {"殺人""放火""吸毒""搶劫""盜竊""上吊""自虐""賭博""偷窺""飆車"}
    
Dim heroList AsNew SortedList
    
Dim maxNumber AsLong
    
Const firstName AsString="塞北的雪"
    
Dim s_flag AsBoolean

    
''' <summary>
''' 生成隨即愛好
''' </summary>
''' <param name="i"></param>
''' <returns></returns>
''' <remarks></remarks>
PrivateFunction createLike(ByVal i AsLongAsString
        
Dim j AsLong
        
Dim k AsLong
        
DimstrAsNew System.Text.StringBuilder
        
For j = arrLike.GetLowerBound(0To arrLike.GetUpperBound(0)
            
Dim rd AsNew System.Random(Environment.TickCount * (i +1* j /100)
            k 
= System.Math.Round(rd.NextDouble *1000)
            
If k Mod2=0Then
                
str.Append("")
                
str.Append(arrLike(j))
            
EndIf
        
Next
        
Returnstr.ToString
    
End Function

    
''' <summary>
'''  裝載資料
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
PrivateSub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
        s_flag 
=True
        
Me.lv1.CheckBoxes =True

        
Dim i AsInteger
        
Const maxCount AsLong=10
        
Dim iItem As ListViewItem
        
Dim aHero As hero
        
For i = maxNumber To maxNumber + maxCount -1
            
Dim rd AsNew System.Random(Environment.TickCount * i)
            aHero 
=New hero
            iItem 
=New ListViewItem
            aHero.myName 
= firstName & i.ToString
            aHero.myAge 
= System.Math.Round(rd.NextDouble *1000)
            aHero.myLike 
= createLike(i)
            iItem.Text 
= aHero.myName
            iItem.Tag 
= aHero
            iItem.SubItems.Add(aHero.myAge)
            iItem.SubItems.Add(aHero.myLike)
            
Me.lv1.Items.Add(iItem)
            heroList.Add(aHero.myName, aHero)
        
Next
        maxNumber 
= i
        
IfMe.lv1.Items.Count >0Then
            
Me.lv1.Items.Item(0).Checked =True
        
EndIf
        s_flag 
=False
    
End Sub

    
''' <summary>
''' 選定所有項
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
PrivateSub btnCheckAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheckAll.Click
        s_flag 
=True
        
IfMe.lv1.Items.Count >0Then
            
Dim i AsInteger
            
For i =0ToMe.lv1.Items.Count -1
                
Me.lv1.Items.Item(i).Checked =True
            
Next
        
EndIf
        s_flag 
=False
    
End Sub

    
''' <summary>
''' 查詢所有選定項
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
PrivateSub btnFindCheckted_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFindCheckted.Click
        
Dim sb AsNew System.Text.StringBuilder
        
IfMe.lv1.Items.Count >0Then
            
Dim i AsInteger
            
For i =0ToMe.lv1.CheckedItems.Count -1
                sb.AppendLine()
                sb.Append(
Me.lv1.CheckedItems.Item(i).Text)
            
Next
        
EndIf
        
MsgBox(sb.ToString)
    
End Sub

    
''' <summary>
''' 刪除所有
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
PrivateSub btnDeleteAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeleteAll.Click
        
Me.lv1.Items.Clear()
        
Me.heroList.Clear()
        maxNumber 
=0
    
End Sub

    
''' <summary>
'''  新增一項
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
PrivateSub btnAddOne_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddOne.Click
        s_flag 
=True
        
Dim iItem AsNew ListViewItem
        
Dim aHero AsNew hero
        
Dim rd AsNew System.Random(Environment.TickCount * maxNumber)
        aHero.myName 
= firstName & maxNumber.ToString
        aHero.myAge 
= System.Math.Round(rd.NextDouble *1000)
        aHero.myLike 
= createLike(maxNumber)
        iItem.Text 
= aHero.myName
        iItem.Tag 
= aHero
        iItem.SubItems.Add(aHero.myAge)
        iItem.SubItems.Add(aHero.myLike)
        
Me.lv1.Items.Add(iItem)
        heroList.Add(aHero.myName, aHero)
        s_flag 
=False
        maxNumber 
+=1
    
End Sub


    
PrivateSub Form6_Load(ByVal sender AsObjectByVal e As System.EventArgs) HandlesMe.Load
        
Me.lv1.View = View.Details
        
Me.lv1.HeaderStyle = ColumnHeaderStyle.Clickable
        
Me.lv1.MultiSelect =True
        
Me.lv1.FullRowSelect =True
        
Me.lv1.GridLines =True