Differenze tra le versioni di "Scambiare il contenuto delle celle di una GridView mediante trascinamento con il mouse"

Da Gambas-it.org - Wikipedia.
 
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 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