ciao..
sono tornato dopo un bel mese di ferie dove non ho visto computer e codice. Riaprendo il mio programmino mi sono subito scontrato con un problema che richiederà una consulenza del forum visto che non ne riesco a venire a capo. Ricalcando i consigli di Michele, sono riuscito a fare la mia bella operazione di drag and drop con il seguente codice
dove timetable1 è un usercontrol abilitato al drag and drop. In sostanza io trasporto una label su timetable, e una volta copiata (NewOggwtto) qui la vorrei spostare.. e ci riesco pure solo che resta una copia della label li dove è stata rilasciata; come se spostassi una copia della copia. Io vorrei invece trascinare la label e poi spostare quella..codice:Private Sub timetable1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Dim OrigineOggetto As Control = e.Data.GetData(GetType(Label)) Dim NewOggetto As New Label With NewOggetto ' qua assegni le proprietà che ti interessano che vengano copiate per la nuova label .Text = OrigineOggetto.Text .Size = OrigineOggetto.Size .BackColor = OrigineOggetto.BackColor .BorderStyle = BorderStyle.FixedSingle .Location = Me.GetMousePosition_IntoControl(sender) sender.Controls.Add(NewOggetto) .BringToFront() .AllowDrop = True End With AddHandler NewOggetto.MouseDown, AddressOf sposta_MouseDown AddHandler NewOggetto.MouseMove, AddressOf sposta_MouseMove 'AddHandler .MouseLeave, AddressOf sposta_Mouseleave End Sub Private Sub sposta_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) 'sender.Font = New Font(Me.Font, FontStyle.Bold) 'sender.borderstyle = BorderStyle.Fixed3D If e.Button = MouseButtons.Left Then sender.Left = sender.Left + (e.X - memx) End If End Sub Private Sub sposta_Mouseleave(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) sender.borderstyle = BorderStyle.None End Sub Private Sub sposta_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) If e.Button = MouseButtons.Left Then memx = e.X memy = e.Y Else Return End If End Sub Private Sub timetable1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) If e.Data.GetData(GetType(Label)) IsNot Nothing Then e.Effect = DragDropEffects.Move Else e.Effect = DragDropEffects.None End If End Sub
Spero che mi possiate aiutare!

Rispondi quotando