Avete una soluzione per fare un drag and drop tra le varie picturebox dell'array?
Potresti allegare un progettino che esemplifichi quello che vai cercando.Certo, prima di tutto ho fatto un po' di confusione, è una matrice e non un array, devo creare questa matrice di picturebox come se fosse una dama, ho scritto giusto un codice di esempio.
Sarà senz'altro colpa mia, ma non ho capito cosa vuoi fare e cos'è che già hai.
:ciao:
Avete una soluzione per fare un drag and drop tra le varie picturebox dell'array?
A mio avviso devi basarti soprattutto sul 2° esempio presente in questa agina della nostra WIKI:
http://www.gambas-it.org/wiki/index.php?title=Codice_essenziale_per_effettuare_il_Drag-Drop_di_un%27immagine
Gianluigi ha inteso chiederti di mostrarci la parte "importante" del progetto, ossia il meccanismo da te escogitato per ottenere il Drag and Drop fra le varie PictureBox della matrice, non il codice per creare la matrice di PictureBox !Potresti allegare un progettino che esemplifichi quello che vai cercando.
Certo, prima di tutto ho fatto un po' di confusione, è una matrice e non un array, devo creare questa matrice di picturebox come se fosse una dama, ho scritto giusto un codice di esempio.
...ho provato a dare un nome ad ogni elemento della matrice (es. .name=picturebox1)A mio avviso un punto fondamentale è l'assegnazione delle PictureBox ad un unico Gruppo di Eventi.
' Gambas class file
'per gestire i TASTI virtuali
Private Indice As Integer
Private ButtonMedia As New Button[]
Private Selezionato As Integer
Public Sub Button_AddMedia_Click()
Dim BT As Button
With BT = New Button(ScrollView_TimeLine) As "Tasto"
.Text = File.Name(FileChooser_Media.SelectedPath)
.Tooltip = FileChooser_Media.SelectedPath
If ButtonMedia.Count = 0 Then
.Top = Label_start_time.Top + Label_start_time.Height + 1 'ma come e' che sembra vadano una dopo l'altra anche se non ho inserito il codice opportuno?
Else
.Top = ButtonMedia[ButtonMedia.Count - 1].Top + ButtonMedia[ButtonMedia.Count - 1].Height
Endif
.Left = Label_start_time.Left - 5
.Font.Size = Me.Font.Size - 3
.Width = Label_start_time.Width + 10
.Border = 1
End With
ButtonMedia.Add(BT)
Inc Indice
'e sposta la label di fine programmazione in coda a questo ultimo evento ... aggiornando il display della fine
Label_end_time.Top = ButtonMedia[ButtonMedia.Count - 1].Top + ButtonMedia[ButtonMedia.Count - 1].Height + 1
Label_end_time.Text = DateAdd(CDate(Label_end_time.Tag), gb.Second, DurataInSecondi) 'mhhh se sommi con la fine oltre la mezzanotte da' errore!!!!!
If Not (Label_end_time.Text Like "[0-2][0-9]:[0-5][0-9]:[0-5][0-9]") Then
'se c'e' un errore probabilemnte e' perche'ì con questo video si scavalla la mezzanotte! Questo e' L'ULTIMO video che si puo' inserire per questa giornata!!!!
' Fine = (DateAdd(DateChooser_Giornata.Value, gb.Day, 1))
' Label_end_time.Text = Day(Fine) & "-" & Month(fine) & "-" & Year(fine)
Label_end_time.Text = Format(DateAdd(DateChooser_Giornata.Value & " " & Label_end_time.Tag, gb.second, DurataInSecondi), "dd/mm/yyyy hh:nn:ss")
Label_end_time.Background = Color.Red
Label_end_time.Show
Button_AddMedia.Enabled = False
Else
Label_end_time.Background = Color.LightForeground
Label_end_time.Show
Endif
Label_end_time.Tag = Label_end_time.Text
'SALVA l'ultima cartella aperta come default per la prossima esecuzione
Settings["FileChooser/LastFolder"] = FileChooser_Media.SelectedPath
End
Public Sub Tasto_Click()
Dim BT As Button
Selezionato = ButtonMedia.Find(Last)
If Selezionato = -1 Then Return
For Each bt In ButtonMedia
bt.Font.Bold = False
Next
ButtonMedia[Selezionato].Font.Bold = True
End
Gianluigi ha inteso chiederti di mostrarci la parte "importante" del progetto, ossia il meccanismo da te escogitato per ottenere il Drag and Drop fra le varie PictureBox della matrice, non il codice per creare la matrice di PictureBox !Potresti allegare un progettino che esemplifichi quello che vai cercando.
Certo, prima di tutto ho fatto un po' di confusione, è una matrice e non un array, devo creare questa matrice di picturebox come se fosse una dama, ho scritto giusto un codice di esempio....ho provato a dare un nome ad ogni elemento della matrice (es. .name=picturebox1)A mio avviso un punto fondamentale è l'assegnazione delle PictureBox ad un unico Gruppo di Eventi.
tempo fa' ebbi un problema simile, risolsi "acchiappando" l'id dell'oggetto:Codice: [Seleziona]' Gambas class file
'per gestire i TASTI virtuali
Private Indice As Integer
Private ButtonMedia As New Button[]
Private Selezionato As Integer
Public Sub Button_AddMedia_Click()
Dim BT As Button
With BT = New Button(ScrollView_TimeLine) As "Tasto"
.Text = File.Name(FileChooser_Media.SelectedPath)
.Tooltip = FileChooser_Media.SelectedPath
If ButtonMedia.Count = 0 Then
.Top = Label_start_time.Top + Label_start_time.Height + 1 'ma come e' che sembra vadano una dopo l'altra anche se non ho inserito il codice opportuno?
Else
.Top = ButtonMedia[ButtonMedia.Count - 1].Top + ButtonMedia[ButtonMedia.Count - 1].Height
Endif
.Left = Label_start_time.Left - 5
.Font.Size = Me.Font.Size - 3
.Width = Label_start_time.Width + 10
.Border = 1
End With
ButtonMedia.Add(BT)
Inc Indice
'e sposta la label di fine programmazione in coda a questo ultimo evento ... aggiornando il display della fine
Label_end_time.Top = ButtonMedia[ButtonMedia.Count - 1].Top + ButtonMedia[ButtonMedia.Count - 1].Height + 1
Label_end_time.Text = DateAdd(CDate(Label_end_time.Tag), gb.Second, DurataInSecondi) 'mhhh se sommi con la fine oltre la mezzanotte da' errore!!!!!
If Not (Label_end_time.Text Like "[0-2][0-9]:[0-5][0-9]:[0-5][0-9]") Then
'se c'e' un errore probabilemnte e' perche'ì con questo video si scavalla la mezzanotte! Questo e' L'ULTIMO video che si puo' inserire per questa giornata!!!!
' Fine = (DateAdd(DateChooser_Giornata.Value, gb.Day, 1))
' Label_end_time.Text = Day(Fine) & "-" & Month(fine) & "-" & Year(fine)
Label_end_time.Text = Format(DateAdd(DateChooser_Giornata.Value & " " & Label_end_time.Tag, gb.second, DurataInSecondi), "dd/mm/yyyy hh:nn:ss")
Label_end_time.Background = Color.Red
Label_end_time.Show
Button_AddMedia.Enabled = False
Else
Label_end_time.Background = Color.LightForeground
Label_end_time.Show
Endif
Label_end_time.Tag = Label_end_time.Text
'SALVA l'ultima cartella aperta come default per la prossima esecuzione
Settings["FileChooser/LastFolder"] = FileChooser_Media.SelectedPath
End
Public Sub Tasto_Click()
Dim BT As Button
Selezionato = ButtonMedia.Find(Last)
If Selezionato = -1 Then Return
For Each bt In ButtonMedia
bt.Font.Bold = False
Next
ButtonMedia[Selezionato].Font.Bold = True
End
....l'unica differenza è che non ho inserito le picturebox in un unico gruppo,
Si lo so il cavallo fa schifo ....
Intanto potresti dare un'occhiata a questa finestra, se la vedi come da immagine allora puoi seguire i suggerimenti di vuott sugli spostamenti (drag e drop) e guardare anche questo (http://www.gambas-it.org/smf/index.php?topic=6238.msg43580#msg43580) , pensare a come limitare gli spostamenti in base al pezzo; ad esempio il cavallo si trova in 4x4 (contando da zero) le caselle a disposizione per lo spostamento, se libere dai pezzi bianchi, sono:
2x3 e 2x5 - 3x2 e 3x6 - 5x2 e 5x6 - 6x3 e 6x5.
Poi ... e poi...
Si lo so il cavallo fa schifo e anche la tastiera... ;D
:ciao: :ciao:
Public Sub GridView1_MouseDrag()
' Preleviamo e trasciniamo il testo individuando precisamente la cella della "GridView":'
GridView1.Drag(GridView1[GridView1.RowAt(Mouse.Y), GridView1.ColumnAt(Mouse.X)].Text, "text/html")
GridView1[GridView1.RowAt(Mouse.Y), GridView1.ColumnAt(Mouse.X)].Text = Null
End
Public Sub GridView1_Drop()
' Rilasciamo nella nuova cella della "GridView" il testo prelevato nell'altra cella:
GridView1[GridView1.RowAt(Drag.Y), GridView1.ColumnAt(Drag.X)].Text = Drag.Data
End