vb.net 检查两个面板是否重叠
vb.net check if two panels are overlapping
我有一个可以随 drag/drop 系统移动的面板。当它在另一个面板上时,我希望它能捕捉到某个位置。我如何检查面板是否重叠?
要简单地检查面板是否重叠,请使用 Rectangle.IntersectsWith。
如果您需要知道它们是如何重叠的,请使用Rectangle.Intersect。
在这两种情况下,您都需要使用 Panel.Bounds 作为参数,因此
Dim b As Boolean = panel1.Bounds.IntersectsWith(panel2.Bounds)
或
Dim r As Rectangle = Rectangle.Intersect(panel1.Bounds, panel2.Bounds)
然后检查 r
是否足够大以进行拖放,例如。
为了检查面板是否重叠,您可以检查面板边界是否重叠:
Dim arePanelsOverlapping = panel1.Bounds.IntersectsWith(panel2.Bounds)
要捕捉到该位置,您还可以使用 Top
、Left
、Bottom
和 Right
属性。
我有一个可以随 drag/drop 系统移动的面板。当它在另一个面板上时,我希望它能捕捉到某个位置。我如何检查面板是否重叠?
要简单地检查面板是否重叠,请使用 Rectangle.IntersectsWith。
如果您需要知道它们是如何重叠的,请使用Rectangle.Intersect。
在这两种情况下,您都需要使用 Panel.Bounds 作为参数,因此
Dim b As Boolean = panel1.Bounds.IntersectsWith(panel2.Bounds)
或
Dim r As Rectangle = Rectangle.Intersect(panel1.Bounds, panel2.Bounds)
然后检查 r
是否足够大以进行拖放,例如。
为了检查面板是否重叠,您可以检查面板边界是否重叠:
Dim arePanelsOverlapping = panel1.Bounds.IntersectsWith(panel2.Bounds)
要捕捉到该位置,您还可以使用 Top
、Left
、Bottom
和 Right
属性。