所以我试图列出一个以上类型的对象,我做了一个研究并发现它,但我也研究了结构,发现我可以使用它,但是它不会将自己作为列表返回。
Imports WinText = System.Windows.Forms.TextBox
Imports WinCombo = System.Windows.Forms.ComboBox
Public Class PSS
Public EntryItems = New List(Of Elements)
Structure Elements
Dim xSchool As WinCombo
Dim xClass As WinCombo
Dim xID As WinCombo
Dim xName As WinText
End Structure
End Class
编辑:所以在一个表单上我有一组ComboBoxes和TextBoxes(比这里的例子大20多)。我想把它们放到一个列表中,这样当我将检索它们的结果,或者获取它们的SQL引用或类似名称时,我就可以将它们放入循环中,从而使代码更有效,更短
答案 0 :(得分:0)
Structure
与Class
有相似之处,而不是列表。
(阅读更多关于here)
您可以创建List(Of Structure)
但您需要先填充它,就像评论中已经说明的djv一样。
Private Sub Populate()
Dim list As New List(Of Elements)
list.Add(New Elements)
'Add as much Elements as you want
End Sub
假设您的控件位于名为Form1
的表单上。
For Each ctrl As Control In Form1.Controls
If TypeOf ctrl Is TextBox Then
Dim tb As TextBox = DirectCast(ctrl, TextBox)
'Do whatever you want with the current TextBox
ElseIf TypeOf ctrl Is ComboBox Then
Dim chk As ComboBox = DirectCast(ctrl, ComboBox)
'Do whatever you want with the current ComboBox
End If
Next
答案 1 :(得分:0)
首先,MatSnow获得学分。
采用他As Control
的概念,我能够制作一个List(Of Control)
,让我可以制作并添加项目。
Dim ControlList As New List(Of Control)
ControlList.Add(ComboBox1)
ControlList.Add(TextBox1)
'And so on