поэтому у меня есть эта форма, где пользователи могут перетаскивать пользовательские элементы управления (это только графические блоки).Они не могут установить контроль над другим, так как им нужно расположить картинки по порядку.Вот мой текущий код: «TempControl» - это объект, который проверяется в цикле «для каждого». «Control» - это объект, который только что был удален пользователем
' vertical check: there's two lines possible
If Control.Top < 200 Then
Control.Top = 70
Else
Control.Top = 240
End If
' horizontal check:
For Each tempControl As MyUSerControl In MyArray
If tempControl.Left < Control.Left And tempControl.Left + tempControl.Width > Control.Left Then 'If the left limit of the moved object is in the fix object
Control.Left = tempControl.Left + tempControl.Width + 5 'Put it on the fix object's right side
End If
If tempControl.Left > Control.Left And tempControl.Left < Control.Left + Control.Width Then 'If the right limit of the moved object is in the fix object
Control.Left = tempControl.Left - Control.Width - 5 'Put it on the left side
End If
Next
Работает нормально (пока), но мне было интересно, есть ли какой-нибудь способ "графически" проверить позиции, например, функция, которая проверяет, свободна ли форма в элементе управления?
Если нет, существует ли более оптимизированный алгоритм для этого видавещей ?Что вы думаете об этом?Спасибо!