我创建了一个非常复杂的 Windows 窗体应用程序。我现在要做的是,如果单击不同的按钮以禁用某些面板,但将其下方的所有其他面板向上移动,使其看起来井井有条。我很难受。我想开发一个函数,它传入一个被禁用的面板以及它下面的所有其他面板的列表,并使用递归重新排列所有面板。此功能有效,但它没有考虑一个面板的高度是否大于另一个面板的高度,它会在两个面板之间留下额外的空间。任何帮助将非常感激。
Public Sub whatever(ByVal panel As Panel, ByVal list As List(Of Panel))
Dim temppanel As Panel = New Panel()
For Each item As Panel In list
temppanel.Location = New Point(temppanel.Location.X, item.Location.Y)
item.Location = New Point(item.Location.X, panel.Location.Y)
list.Remove(item)
whatever(temppanel, list)
If list.Count = 0 Then
Exit For
End If
Next
End Sub
图片