试图以不同的方式做到这一点,这是我最新的:
Dim i As Integer = 0
Dim ControlCount As Integer = SearchResults.Controls.Count
Do Until i > ControlCount
SearchResults.Controls.RemoveByKey(i)
i += 1
Loop
搜索结果是流布局面板的名称!
如何做到这一点的任何想法?我只想删除当前面板中的所有内容!
我也尝试过像searchresults.items.clear这样的东西,但无济于事
答案 0 :(得分:1)
你试过SearchResults.Controls.Clear()
吗? FlowLayoutPanel具有Controls属性。查看该文档(http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controls.aspx),您可以看到它是一个Control.ControlCollection,并查看文档,您可以找到.Clear()方法。
我怀疑你的控件没有0,1,2的键......(键应该是一个String,而不是一个Integer) - 也许你在考虑RemoveAt方法(http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection.removeat.aspx)。但这不会以你显示的方式起作用,因为每次删除一个控件时,控件的数量都会减少一个。
所以,试试.Clear()方法,请设置Option Strict On,最好是在IDE中,让它为你指出错误。
答案 1 :(得分:0)
密钥是一个字符串,作为第一个响应。键是控件的Name属性。如果您还想删除flowlayoutpanel及其内容,可以像下面这样调用dispose方法:
If IsNothing(flpTechProductionNumbers.Controls.Find(Action, True).FirstOrDefault) Then
Else
flpTechProductionNumbers.Controls.Find(Action, True).First.Dispose()
' flpTechProductionNumbers.Controls.Find(Action, True).First.Controls.Clear()
End If
如果你想通过像你正在尝试的索引访问控件,你应该能够将Controls属性视为一个数组,并执行以下操作:
flpTechProductionNumbers.Controls(i)