我正在向这样的表单添加控件
Dim sharpUserX As New SharpUser()
Dim y As Integer = 0
For Each con As Control In PnlSharpUsers.Controls
If TypeOf(con) is SharpUser then ' as i have the pnaddbtn, which i move to the bottom below
If y < con.Bottom Then y = con.Bottom
End If
Next
sharpUserX.Location = New Point(2, y)
'sharpUserX.Location = pnlAddBtn.location 'this does that exact same
sharpUserX.Size = sharpUserSize
PnlSharpUsers.Controls.Add(sharpUserX)
'put add button back on
pnlAddBtn.Location = New Point(pnlAddBtn.Left, sharpUserX.Bottom) 'strangely this is always correct
这在按下按钮时调用,它将 ShrpUser 控件添加到我的面板,然后将 addbtn 面板移动到底部。
add btn 面板正确移动,但添加的新控件被添加,但该位置似乎将它与前一个控件的间隙差加倍。
如果我在每次添加后输出它们,这就是位置
1 added
loc={X=2,Y=0} size={Width=849, Height=117}
2nd added
loc={X=2,Y=0} size={Width=849, Height=117}
loc={X=2,Y=135} size={Width=849, Height=117}
3rd added
loc={X=2,Y=0} size={Width=849, Height=117}
loc={X=2,Y=135} size={Width=849, Height=117}
loc={X=2,Y=291} size={Width=849, Height=117}
2 上的 y 应该是 117,3 上的 y 应该是 234 表格确实按字体缩放。我认为这是造成它的原因,但我不知道该怎么做,也不明白为什么 pnladdBtn 有效。