dHeather
Active member
- Joined
- Jun 18, 2012
- Messages
- 27
- Programming Experience
- Beginner
Hello,
Is it possible to add ListViews to a List(Of T) with a loop if they are not yet Controls on a form? I want to do something similar to the below:
For i AsInteger = 1 To 5
PictureBoxList.Add(Me.Controls("PictureBox" & i))
Next i
Unlike the above my ListViews are being created during runtime (see below) and are not in my Control List. What I want to know is can I add the code I have highlighted below into a loop? (ImageLists too)
[XCODE]
PublicClass Form1
Dim ListViewList AsNew List(Of ListView)
Dim ListView1, ListView2, ListView3, ListView4, ListView5, ListView6, ListView7, ListView8, ListView9, ListView10 AsNew ListView
Dim ImageListList AsNew List(Of ImageList)
Dim ImageList1, ImageList2, ImageList3, ImageList4, ImageList5, ImageList6, ImageList7, ImageList8, ImageList9, ImageList10 AsNew ImageList
Dim FileGroupTitle() AsString = {"Track Systems", "Hoists & Motors", "Theatre Flying Systems", "SkyDeck", "acouStac Banners", "CAD Blocks Track Systems", "CAD Blocks Hoists & Motors", "CAD Blocks Theatre Flying", "CAD Blocks SkyDeck", "CAD Blocks acouStac Banners"}
Dim CurrentListView AsInteger = 0
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
Dim MyFile AsString
Dim CSVLine() AsString
Dim CSVCellData() AsString
Dim LastLineText AsString = ""
Dim FileString AsString = ""
' *** CAN THIS AREA BE LOOPED? ***
'********************************
ListViewList.Add(ListView1)
ListViewList.Add(ListView2)
ListViewList.Add(ListView3)
ListViewList.Add(ListView4)
ListViewList.Add(ListView5)
ListViewList.Add(ListView6)
ListViewList.Add(ListView7)
ListViewList.Add(ListView8)
ListViewList.Add(ListView9)
ListViewList.Add(ListView10)
ImageListList.Add(ImageList1)
ImageListList.Add(ImageList2)
ImageListList.Add(ImageList3)
ImageListList.Add(ImageList4)
ImageListList.Add(ImageList5)
ImageListList.Add(ImageList6)
ImageListList.Add(ImageList7)
ImageListList.Add(ImageList8)
ImageListList.Add(ImageList9)
ImageListList.Add(ImageList10)
'********************************
For i AsInteger = 0 To 9
Me.Controls.Add(ListViewList(i))
With ListViewList(i)
.View = View.Details
.Width = 300
.Height = 300
.Location = New Point(10, 10)
.FullRowSelect = True
.BackColor = Color.White
.BorderStyle = BorderStyle.None
.FullRowSelect = True
.HeaderStyle = ColumnHeaderStyle.Nonclickable
.SmallImageList = ImageListList(i)
.Columns.Add(FileGroupTitle(i), 248, HorizontalAlignment.Left)
.Visible = False
EndWith
Dim LineCount AsInteger = -1
Dim filePath AsString = "E:\Uploads\" & FileGroupTitle(i) & ".csv"
MyFile = My.Computer.FileSystem.ReadAllText(filePath)
CSVLine = Split(MyFile, vbNewLine)
ForEach lineOfText AsStringIn CSVLine
CSVCellData = lineOfText.Split(",")
ForEach wordOfText AsStringIn CSVCellData
SelectCase wordOfText
Case 1
ListViewList(i).Items(LineCount).Font = New Font(ListViewList(i).Items(LineCount).Font, FontStyle.Bold Or FontStyle.Underline)
ImageListList(i).Images.Add(My.Resources.blk)
Case 2
FileString = LastLineText.Substring(LastLineText.Length - 3)
ImageListList(i).Images.Add(My.Resources.ResourceManager.GetObject(FileString))
Case 3
ListViewList(i).Items(LineCount).ForeColor = Color.LightGray
ImageListList(i).Images.Add(My.Resources.blk)
CaseElse
LastLineText = wordOfText
LineCount = LineCount + 1
ListViewList(i).Items.Add(wordOfText, LineCount)
EndSelect
Next wordOfText
Next lineOfText
Next i
ListViewList(CurrentListView).Visible = True
EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListViewList(CurrentListView).Visible = False
If CurrentListView = 9 Then
CurrentListView = 0
Else
CurrentListView = CurrentListView + 1
EndIf
ListViewList(CurrentListView).Visible = True
EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListViewList(CurrentListView).Visible = False
If CurrentListView = 0 Then
CurrentListView = 9
Else
CurrentListView = CurrentListView - 1
EndIf
ListViewList(CurrentListView).Visible = True
EndSub
EndClass
[/XCODE]
Thank you very much for your help
Is it possible to add ListViews to a List(Of T) with a loop if they are not yet Controls on a form? I want to do something similar to the below:
For i AsInteger = 1 To 5
PictureBoxList.Add(Me.Controls("PictureBox" & i))
Next i
Unlike the above my ListViews are being created during runtime (see below) and are not in my Control List. What I want to know is can I add the code I have highlighted below into a loop? (ImageLists too)
[XCODE]
PublicClass Form1
Dim ListViewList AsNew List(Of ListView)
Dim ListView1, ListView2, ListView3, ListView4, ListView5, ListView6, ListView7, ListView8, ListView9, ListView10 AsNew ListView
Dim ImageListList AsNew List(Of ImageList)
Dim ImageList1, ImageList2, ImageList3, ImageList4, ImageList5, ImageList6, ImageList7, ImageList8, ImageList9, ImageList10 AsNew ImageList
Dim FileGroupTitle() AsString = {"Track Systems", "Hoists & Motors", "Theatre Flying Systems", "SkyDeck", "acouStac Banners", "CAD Blocks Track Systems", "CAD Blocks Hoists & Motors", "CAD Blocks Theatre Flying", "CAD Blocks SkyDeck", "CAD Blocks acouStac Banners"}
Dim CurrentListView AsInteger = 0
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
Dim MyFile AsString
Dim CSVLine() AsString
Dim CSVCellData() AsString
Dim LastLineText AsString = ""
Dim FileString AsString = ""
' *** CAN THIS AREA BE LOOPED? ***
'********************************
ListViewList.Add(ListView1)
ListViewList.Add(ListView2)
ListViewList.Add(ListView3)
ListViewList.Add(ListView4)
ListViewList.Add(ListView5)
ListViewList.Add(ListView6)
ListViewList.Add(ListView7)
ListViewList.Add(ListView8)
ListViewList.Add(ListView9)
ListViewList.Add(ListView10)
ImageListList.Add(ImageList1)
ImageListList.Add(ImageList2)
ImageListList.Add(ImageList3)
ImageListList.Add(ImageList4)
ImageListList.Add(ImageList5)
ImageListList.Add(ImageList6)
ImageListList.Add(ImageList7)
ImageListList.Add(ImageList8)
ImageListList.Add(ImageList9)
ImageListList.Add(ImageList10)
'********************************
For i AsInteger = 0 To 9
Me.Controls.Add(ListViewList(i))
With ListViewList(i)
.View = View.Details
.Width = 300
.Height = 300
.Location = New Point(10, 10)
.FullRowSelect = True
.BackColor = Color.White
.BorderStyle = BorderStyle.None
.FullRowSelect = True
.HeaderStyle = ColumnHeaderStyle.Nonclickable
.SmallImageList = ImageListList(i)
.Columns.Add(FileGroupTitle(i), 248, HorizontalAlignment.Left)
.Visible = False
EndWith
Dim LineCount AsInteger = -1
Dim filePath AsString = "E:\Uploads\" & FileGroupTitle(i) & ".csv"
MyFile = My.Computer.FileSystem.ReadAllText(filePath)
CSVLine = Split(MyFile, vbNewLine)
ForEach lineOfText AsStringIn CSVLine
CSVCellData = lineOfText.Split(",")
ForEach wordOfText AsStringIn CSVCellData
SelectCase wordOfText
Case 1
ListViewList(i).Items(LineCount).Font = New Font(ListViewList(i).Items(LineCount).Font, FontStyle.Bold Or FontStyle.Underline)
ImageListList(i).Images.Add(My.Resources.blk)
Case 2
FileString = LastLineText.Substring(LastLineText.Length - 3)
ImageListList(i).Images.Add(My.Resources.ResourceManager.GetObject(FileString))
Case 3
ListViewList(i).Items(LineCount).ForeColor = Color.LightGray
ImageListList(i).Images.Add(My.Resources.blk)
CaseElse
LastLineText = wordOfText
LineCount = LineCount + 1
ListViewList(i).Items.Add(wordOfText, LineCount)
EndSelect
Next wordOfText
Next lineOfText
Next i
ListViewList(CurrentListView).Visible = True
EndSub
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListViewList(CurrentListView).Visible = False
If CurrentListView = 9 Then
CurrentListView = 0
Else
CurrentListView = CurrentListView + 1
EndIf
ListViewList(CurrentListView).Visible = True
EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListViewList(CurrentListView).Visible = False
If CurrentListView = 0 Then
CurrentListView = 9
Else
CurrentListView = CurrentListView - 1
EndIf
ListViewList(CurrentListView).Visible = True
EndSub
EndClass
[/XCODE]
Thank you very much for your help