Member 12605504 Ответов: 1

Как я перемещаю несколько пользовательских элементов управления в поле изображения C#


Я сделал пользовательский элемент управления.
тот же пользовательский элемент управления перетащите 3 раза в поле изображения и теперь я хочу переместить несколько пользовательских элементов управления в поле изображения во время выполнения

Что я уже пробовал:

Я пробовал этот код, но он работает на кнопочном управлении..


Тест открытый класс
Dim a As Boolean = False

Private Sub Button1_MouseUp(ByVal sender As System.Объект, бывал е как система.Окна.Формы.MouseEventArgs) Обрабатывает Кнопку Button1.События mouseup
a = ложь
Конец Подводной Лодки

Private Sub Button1_MouseDown(ByVal sender As System.Объект, бывал е как система.Окна.Формы.MouseEventArgs) Обрабатывает Кнопку Button1.событие MouseDown
a = истина
Конец Подводной Лодки

Private Sub Button1_MouseMove(бывал отправитель как система.Объект, бывал е как система.Окна.Формы.MouseEventArgs) Обрабатывает Кнопку Button1.События mousemove

Если a = True, то

Кнопка 1.Левый = Контроль.Мышиное положение.X-Me. Left-10
Кнопка 1.Верх = Контроль.Мышиное положение.Y - Я.Топ-40

Конец, Если

Конец Подводной Лодки

Конец Класса

BillWoodruff

Пожалуйста, уточните: вы хотите переместить PictureBoxes внутри UserControl ?

Кроме того, пожалуйста, обновите свой код, чтобы показать, как вы используете элементы PictureBox и UserControl.

1 Ответов

Рейтинг:
4

OriginalGriff

Во-первых, это VB, а не C# - важно правильно пометить свой вопрос!
Во-вторых, если он работает для кнопки, то он должен работать и для UserControl.
Лучший способ сделать это-заменить фиксированную зависимость от Button1 универсальным элементом управления и использовать sender параметр для идентификации задействованного элемента управления:

Private Sub Control_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs)
	Dim c As Control = TryCast(sender, Control)
	If a = True Then
		c.Left = Control.MousePosition.X - Me.Left - 10
		c.Top = Control.MousePosition.Y - Me.Top - 40
	End If
End Sub
И используйте это для обработки ваших событий.


BillWoodruff

Я боюсь, что плакат может буквально означать то, что они говорят в своем названии, и поместил UserControl (ы) внутри PictureBox; я задал им вопрос об этом в комментарии :)