Графически определить элемент управления на форме в vb.net - PullRequest
0 голосов
/ 16 апреля 2019

поэтому у меня есть эта форма, где пользователи могут перетаскивать пользовательские элементы управления (это только графические блоки).Они не могут установить контроль над другим, так как им нужно расположить картинки по порядку.Вот мой текущий код: «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

Работает нормально (пока), но мне было интересно, есть ли какой-нибудь способ "графически" проверить позиции, например, функция, которая проверяет, свободна ли форма в элементе управления?

Если нет, существует ли более оптимизированный алгоритм для этого видавещей ?Что вы думаете об этом?Спасибо!

1 Ответ

0 голосов
/ 16 апреля 2019

Я не уверен, правильно ли я понял ваш вопрос, но давайте посмотрим, поможет ли этот вопрос.

GetChildAtPoint (Point)

Извлекает ребенкауправление в указанном месте.

Пример:

Dim controlAtPoint = myForm.GetChildAtPoint(anyPoint)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...