VB.NET 中 使用 ListView 控制元件的簡單例子
阿新 • • 發佈:2019-02-16
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 AsLong) AsString
Dim j AsLong
Dim k AsLong
DimstrAsNew System.Text.StringBuilder
For j = arrLike.GetLowerBound(0) To arrLike.GetUpperBound(0)
Dim rd AsNew System.Random(Environment.TickCount * (i +1) * j /100)
k = System.Math.Round(rd.NextDouble *100, 0)
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 *100, 0)
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 *100, 0)
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 AsObject, ByVal 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
''' <summary>
''' 英雄類
''' </summary>
''' <remarks></remarks>
PublicClass hero
Private s_name AsString
Private s_age AsLong
Private s_like AsString
PublicProperty myName() AsString
Get
Return
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
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 AsLong) AsString
Dim j AsLong
Dim k AsLong
DimstrAsNew System.Text.StringBuilder
For j = arrLike.GetLowerBound(0) To arrLike.GetUpperBound(0)
Dim rd AsNew System.Random(Environment.TickCount * (i +1) * j /100)
k = System.Math.Round(rd.NextDouble *100, 0)
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 *100, 0)
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 *100, 0)
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 AsObject, ByVal 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