Differenze tra le versioni di "Spostare oggetti con il mouse all'interno di un contenitore mediante Drag & Drop"
Riga 7: | Riga 7: | ||
Public Sub Form_Open() | Public Sub Form_Open() | ||
− | <FONT Color=gray>' ''Attiviamo la capacità del contenitore "Panel1" di ricevere con il "_Drop()" il | + | <FONT Color=gray>' ''Attiviamo la capacità del contenitore "Panel1" di ricevere con il "_Drop()" il "Button" trascinato:''</font> |
Panel1.Drop = True | Panel1.Drop = True | ||
Riga 23: | Riga 23: | ||
Public Sub Panel1_DragMove() | Public Sub Panel1_DragMove() | ||
− | <FONT Color=gray>' ''L' | + | <FONT Color=gray>' ''L'Oggetto "Button1" - durante lo spostamento del mouse nel Contenitore "Panel1" - assume le coordinate del mouse medesimo:''</font> |
With Button1 | With Button1 | ||
.X = Drag.X | .X = Drag.X |
Versione attuale delle 08:01, 5 giu 2024
Di seguito abbiamo due paragrafi per mostrare rispettivamente come spostare uno e due o più Controlli all'interno di un contenitore mediante l'uso del Drag 'n Drop.
Otterremo lo spostamento concreto ed effettivo del Controllo sfruttando le Proprietà ".X" e ".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 "Button" 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_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 un Oggetto facendo restare il puntatore del mouse nel punto dell'Oggetto dove si è cliccato
Durante lo spostamento di un Oggetto grafico può essere utile che il puntatore del mouse resti nel punto dell'Oggetto ove si è cliccato.
Mostriamo un possibile codice, nel quale si porrà sul Form un Panel, e al di sopra del Panel si porrà una Label:
Public Sub Form_Open() Label1.Background = Color.Red Panel1.Drop = True End Public Sub Label1_MouseDrag() Label1.Drag("") End Public Sub Panel1_DragMove() ' Fa sì che durante lo spostamento della "Label" il puntatore del mouse resti nel punto della "Label" ove si è cliccato: With Label1 .X = Drag.X - Mouse.StartX .Y = Drag.Y - Mouse.StartY End With End
Spostare un Oggetto grafico fra molti
Nell'esempio che segue saranno creati dinamicamente più Button all'interno di un Contenitore "Genitore" Panel, che potranno essere spostati liberamente dall'utente.
Private Panel1 As Panel Private bt As Button Public Sub Form_Open() With Panel1 = New Panel(Me) As "Panel1" .X = 0 .Y = 0 .W = Me.W .H = Me.H .Background = Color.Lighter(Color.Yellow) End With For b As Byte = 1 To 10 With bt = New Button(Panel1) As "Tasto" .W = 20. .H = 20 .X = 10 * (b + b) .Y = 10 * b .Name = CStr(b) .Text = CStr(b) .Background = Color.Orange End With Next Panel1.Drop = True End Public Sub Tasto_MouseDrag() bt = Last Last.Drag("") End Public Sub Panel1_DragMove() With bt .X = Drag.X .Y = Drag.Y End With End Public Sub Tasto_MouseDown() Me.Title = "Premuto tasto n. " & Last.Name End