vb.net检查两个面板是否重叠

时间:2015-08-25 20:41:08

标签: vb.net panel

我有一个可以使用拖放系统移动的面板。当它是另一个面板上的药物时,我希望它能够突然到达某个位置。如何检查面板是否重叠?

2 个答案:

答案 0 :(得分:3)

要简单检查面板是否重叠,请使用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是否足够大,可以拖放,例如。

答案 1 :(得分:2)

为了检查面板是否重叠,您可以检查面板边界是否重叠:

Dim arePanelsOverlapping = panel1.Bounds.IntersectsWith(panel2.Bounds)

要捕捉到该位置,您还可以使用TopLeftBottomRight属性。