【问题标题】:vb.net check if two panels are overlappingvb.net 检查两个面板是否重叠
【发布时间】:2015-11-19 17:26:37
【问题描述】:

我有一个面板,我可以通过拖放系统四处移动。当它是另一个面板顶部的药物时,我希望它能够捕捉到某个位置。如何检查面板是否重叠?

【问题讨论】:

    标签: vb.net panel


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2017-05-13
        • 1970-01-01
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 2013-09-27
        • 1970-01-01
        相关资源
        最近更新 更多