Создание и передвижение объектов - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Возник такой вопрос, после создание объекта на форме, мне необходимо его передвигать как это сделать если у меня нет "Handles" того объекта который я собираюсь передвигать. Или есть способ для которого нам не обязательно знать точное имя объекта, а достаточно лишь того что он "PictureBox"? И возможно ли узнать индекс того объекта на который мы нажимаем мышкой? (пытался это сделать последними 5 строчками, но так ничего и не вышло, хотя никаких ошибок не выдавал)

Решение задачи: «Создание и передвижение объектов»

textual
Листинг программы
Public Class Form1
    Dim mov As Boolean
    Dim kol As Integer, i As Integer, ic As Integer
    Dim ikon(kol) As PictureBox
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        kol = Val(TextBox1.Text)
        ReDim ikon(kol)
        For Me.i = 1 To kol
            Me.SuspendLayout()
            ikon(i) = New PictureBox
            Dim picture As New PictureBox()
            picture.Image = Image.FromFile("D:\tmp\1.jpg")
            AddHandler picture.MouseDown, AddressOf PicAll_MouseDown
            'AddHandler picture.MouseUp, AddressOf PicAll_MouseUp
            AddHandler picture.MouseMove, AddressOf PicAll_MouseMove
            Me.Controls.AddRange(New Control() {picture})
            Me.ResumeLayout()
            ikon(i) = picture
            ikon(i).Image = Image.FromFile("D:\tmp\1.jpg")
            ikon(i).BringToFront()
            ikon(i).Visible = True
            ikon(i).Top = 20
            ikon(i).Width = 130
            ikon(i).Height = 111
            ikon(i).Left = 150 * (i + 1)
        Next
    End Sub
    Private Sub PicAll_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
        'Выбор картинки мышкой
        For Me.i = 1 To kol
            If ikon(i).Capture = True Then
                'MsgBox(i)
                TextBox2.Text = i
                Exit For
            End If
        Next
    End Sub
 
    Private Sub PicAll_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
        'Перемещение картинки мышкой
        Dim mouseX As Integer = e.X
        Dim mouseY As Integer = e.Y
        ic = TextBox2.Text
        If ikon(ic).Capture = True Then
            ikon(ic).Left = ikon(ic).Left + mouseX
            ikon(ic).Top = ikon(ic).Top + mouseY
        End If
    End Sub
 
 
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы