Differenze tra le versioni di "Scambiare il contenuto delle celle di una GridView mediante trascinamento con il mouse"
Da Gambas-it.org - Wikipedia.
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 1: | Riga 1: | ||
=Scambio senza Drag&Drop= | =Scambio senza Drag&Drop= | ||
Mostriamo un possibile codice, con il quale si potrà scambiare il testo da una cella di una ''GridView'' mediante trascinamento con il mouse a un'altra mediante rilascio (similmente al comportamento del ''Drag&Drop'', ma senza utilizzarne le risorse). | Mostriamo un possibile codice, con il quale si potrà scambiare il testo da una cella di una ''GridView'' mediante trascinamento con il mouse a un'altra mediante rilascio (similmente al comportamento del ''Drag&Drop'', ma senza utilizzarne le risorse). | ||
+ | Private GridView1 As GridView | ||
+ | |||
+ | |||
Public Sub Form_Open() | Public Sub Form_Open() | ||
− | With GridView1 | + | With GridView1 = New GridView(Me) As "GridView1" |
+ | .X = 0 | ||
+ | .y = 0 | ||
+ | .W = 180 | ||
+ | .H = 100 | ||
.Columns.Count = 3 | .Columns.Count = 3 | ||
.Rows.Count = 5 | .Rows.Count = 5 | ||
Riga 17: | Riga 24: | ||
− | Public Sub | + | Public Sub GridView1_Click() |
− | + | GridView1.Tag = GridView1.Current | |
End | End | ||
− | Public Sub | + | Public Sub GridView1_MouseUp() |
− | GridView1.Tag | + | Swap GridView1.Tag.Text, GridView1.Current.Text |
End | End | ||
Riga 33: | Riga 40: | ||
=Scambio con il Drag&Drop= | =Scambio con il Drag&Drop= | ||
In quest'altro codice si farà uso delle risorse del ''Drag&Drop'': | In quest'altro codice si farà uso delle risorse del ''Drag&Drop'': | ||
+ | Private GridView1 As GridView | ||
+ | |||
+ | |||
Public Sub Form_Open() | Public Sub Form_Open() | ||
− | With GridView1 | + | With GridView1 = New GridView(Me) As "GridView1" |
+ | .X = 0 | ||
+ | .y = 0 | ||
+ | .W = 180 | ||
+ | .H = 100 | ||
.Columns.Count = 3 | .Columns.Count = 3 | ||
.Rows.Count = 5 | .Rows.Count = 5 |
Versione attuale delle 05:29, 7 giu 2024
Scambio senza Drag&Drop
Mostriamo un possibile codice, con il quale si potrà scambiare il testo da una cella di una GridView mediante trascinamento con il mouse a un'altra mediante rilascio (similmente al comportamento del Drag&Drop, ma senza utilizzarne le risorse).
Private GridView1 As GridView Public Sub Form_Open() With GridView1 = New GridView(Me) As "GridView1" .X = 0 .y = 0 .W = 180 .H = 100 .Columns.Count = 3 .Rows.Count = 5 End With For b As Byte = 0 To GridView1.Columns.Max For c As Byte = 0 To GridView1.Rows.Max GridView1[c, b].Text = b & "-" & c Next Next End Public Sub GridView1_Click() GridView1.Tag = GridView1.Current End Public Sub GridView1_MouseUp() Swap GridView1.Tag.Text, GridView1.Current.Text End
Scambio con il Drag&Drop
In quest'altro codice si farà uso delle risorse del Drag&Drop:
Private GridView1 As GridView Public Sub Form_Open() With GridView1 = New GridView(Me) As "GridView1" .X = 0 .y = 0 .W = 180 .H = 100 .Columns.Count = 3 .Rows.Count = 5 .Drop = True End With For b As Byte = 0 To GridView1.Columns.Max For c As Byte = 0 To GridView1.Rows.Max GridView1[c, b].Text = b & "-" & c Next Next End Public Sub GridView1_MouseDrag() GridView1.Drag(GridView1.Current.Text, "text/html") End Public Sub GridView1_Drop() Dim tmp As String With GridView1 ' Individua l'indice della cella del rilascio: tmp = GridView1[.RowAt(Mouse.ScreenY - Me.Y - .Y), .ColumnAt(Mouse.ScreenX - Me.X - .X)].Text GridView1[.RowAt(Mouse.ScreenY - Me.Y - .Y), .ColumnAt(Mouse.ScreenX - Me.X - .X)].Text = Drag.Data .Current.Text = tmp End With End