从多个表单对象创建List(Of ...)

时间:2017-09-27 14:27:53

标签: vb.net list

所以我试图列出一个以上类型的对象,我做了一个研究并发现它,但我也研究了结构,发现我可以使用它,但是它不会将自己作为列表返回。

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引用或类似名称时,我就可以将它们放入循环中,从而使代码更有效,更短

2 个答案:

答案 0 :(得分:0)

StructureClass有相似之处,而不是列表。 (阅读更多关于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