嗨,我知道这可能听起来有点奇怪,但我想要一个包含其他控件列表的主列表。这是我到目前为止所拥有的。
'Create master list of control lists. Each member of this list will be a list containing one rows worth of controls
Dim masterList As New List(Of List(Of Control))
Dim rowList As New List(Of Control)
For Each Control As Control In flpExceptionControls.Controls
rowList.Add(Control)
If flpExceptionControls.GetFlowBreak(Control) = True Then
masterList.Add(rowList)
rowList.Clear()
End If
Next
For Each row As List(Of Control) In masterList
MsgBox(row.Count.ToString)
Next
消息框显示每个列表的计数都为0,但我知道它是将所有控件添加到这些对象,因为它在我单步执行代码时显示它。我猜测我只是没有正确访问主列表中包含的列表对象。
任何建议都将不胜感激。
答案 0 :(得分:2)
你的问题在这里:
If flpExceptionControls.GetFlowBreak(Control) = True Then
masterList.Add(rowList)
rowList.Clear()
End If
您正在清除相同列表的内容,然后您要添加一些新项目,然后再次清除,并将相同参考添加到主列表。实质上; masterList中的所有项目都是相同的空列表。
您需要为每个子列表创建一个新的子列表。不要清除任何列表。
Dim rowList As New List(Of Control)
For Each Control As Control In flpExceptionControls.Controls
rowList.Add(Control)
If flpExceptionControls.GetFlowBreak(Control) = True Then
masterList.Add(rowList)
rowList = New List(Of Control)
End If
Next