2014-01-11 61 views
0

我一直試圖弄清楚如何不允許我在事件上繪製的控件檢查並查看是否存在另一個控件,如果是,則將它移動以便它們不重疊。如果用戶在那裏拖動它們,但需要創建控件來檢查並移動它們(如有必要),我需要它們能夠重疊。我試圖創建一個紙牌遊戲,並且不希望控件隱藏在用戶尚未手動移動的控件(卡片)後面。我使用圖片盒作爲我的卡片。任何幫助將不勝感激。這是我的表單的屏幕截圖。黑暗的面板是玩家手中的東西。淺灰色的面板是比賽場地。理想情況下,用戶可以玩一張卡,然後嘗試將其放置在面板的左上角。如果存在交叉的卡片,則將其移動直到它不接觸卡片。基本上找到一個空地放卡。不允許控件重疊

Image of Form1

+0

什麼是你的問題?如果你問我如何檢查空格是否爲空,你可以執行'myPanel.GetChildAtPoint(checkThisPoint)'。它將返回一個涵蓋該點的控件。你需要開發邏輯來保持和檢查所有控件的位置 –

+0

這正是我的問題。例如,我將如何運行一個循環來檢查每個(卡片)圖片框,並根據新創建的圖片框進行檢查,如果他們要互相觸摸然後移動它。如果在那時觸及另一個,則再次移動它。 – Timg

+0

請檢查此代碼http://stackoverflow.com/a/19717325/1704458。這是一個例子,並不完全是答案,但它可能是其中的一部分。你需要一系列數組等來保存所有的信息並將它們在內存中進行比較。例如,卡堆棧可以是一個加固陣列。你有一系列的堆棧,並在堆棧中有一系列的卡片 - 純粹的編程:o) –

回答

0

您是否嘗試使用工具箱下的流佈局面板類它=>與此控制可以設置控件如何添加到它的容器中。

+0

我已經嘗試過使用它,但是,這不會影響用戶能夠拖動圖片框他們已被添加? – Timg