Differenze tra le versioni di "Spostare oggetti con il mouse all'interno di un contenitore mediante Drag & Drop"
Riga 44: | Riga 44: | ||
==Spostare due o più Oggetti== | ==Spostare due o più Oggetti== | ||
Nell'esempio che segue saranno creati dinamicamente più "''Button''", che potranno essere spostati liberamente dall'utente. | Nell'esempio che segue saranno creati dinamicamente più "''Button''", che potranno essere spostati liberamente dall'utente. | ||
+ | Private bt As Button | ||
+ | Private i As Integer | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button1_Click() | ||
+ | |||
+ | Inc i | ||
+ | |||
+ | With bt = New Button(PictureBox1) As "Tasto" | ||
+ | .X = 10 + i * 25 | ||
+ | .Y = 10 + i * 25 | ||
+ | .W = 20. | ||
+ | .H = 20 | ||
+ | .Name = CStr(i) | ||
+ | .Text = CStr(i) | ||
+ | .Background = Color.Orange | ||
+ | End With | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Tasto_MouseDrag() | ||
+ | |||
+ | bt = Last | ||
+ | |||
+ | Last.Drag("") | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub PictureBox1_DragMove() | ||
+ | |||
+ | With bt | ||
+ | .X = Drag.X | ||
+ | .Y = Drag.Y | ||
+ | End With | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Public''' Sub Button2_Click() | ||
+ | |||
+ | Me.close | ||
+ | |||
+ | '''End''' |
Versione delle 06:50, 22 giu 2019
Di seguito abbiamo due paragrafi per mostrare rispettivamente come spostare uno e due o più oggetti oggetti all'interno di un contenitore mediante l'uso del Drag 'n Drop.
In vero, non trascineremo con tali eventi del Drag 'n Drop l'oggetto in quanto tale, un elemento legato ad una sua proprietà, come ad esempio del testo (anche se realmente assente) oppure una immagine (ovviamente anche trasparente) posta in una Picture .
Otterremo lo spostamento concreto ed effettivo dell'oggetto sfruttando le proprietà Drag.X e Drag.Y della Classe Drag .
Spostare un solo Oggetto
L'esempio pratico, che mostriamo di seguito, prevede la presenza di un "Button" all'interno di un contenitore genitore "Panel". Tale Button verrà spostato all'interno del suo contenitore genitore mediante gli eventi del Drag 'n Drop:
Public Sub Form_Open() ' Attiviamo la capacità del contenitore "Panel1" di ricevere con il "_Drop()" il testo trascinato: Panel1.Drop = True End Public Sub Button1_MouseDrag() ' Per poter trascinare l'oggetto "Button1", dobbiamo almeno fittiziamente trascinare un elemento che faccia riferimento ad una falsa stringa: Button1.Drag("") End Public Sub Panel1_Drop() ' L'evento "_Drop" deve essere comunque presente, anche senza alcuna istruzione all'interno della suo sub-routine, ' per consentire regolarmente il rilascio dell'oggetto "Button1" all'interno del contenitore "Panel1". End Public Sub Panel1_DragMove() ' L'oggetto "Button1" - durante lo spostamento del mouse nel contenitore "Panel1" - assume le coordinate del mouse medesimo: With Button1 .X = Drag.X .Y = Drag.Y End With End
Spostare due o più Oggetti
Nell'esempio che segue saranno creati dinamicamente più "Button", che potranno essere spostati liberamente dall'utente.
Private bt As Button Private i As Integer Public Sub Button1_Click() Inc i With bt = New Button(PictureBox1) As "Tasto" .X = 10 + i * 25 .Y = 10 + i * 25 .W = 20. .H = 20 .Name = CStr(i) .Text = CStr(i) .Background = Color.Orange End With End Public Sub Tasto_MouseDrag() bt = Last Last.Drag("") End Public Sub PictureBox1_DragMove() With bt .X = Drag.X .Y = Drag.Y End With End Public Sub Button2_Click() Me.close End