Drag and drop dans une msflexgrid

Résolu
cs_djeba Messages postés 1 Date d'inscription mercredi 29 novembre 2006 Statut Membre Dernière intervention 28 décembre 2006 - 28 déc. 2006 à 14:11
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 28 déc. 2006 à 23:54
Comment faire un dragdrop dans une msflexgrid avec échange des deux positions. Merci

1 réponse

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 déc. 2006 à 23:54
Salut,

Si tu parles d'intervertir les données d'une FlexGrid par DragDrop, voici un exemple
Places une grille nommée Grid1 et un Label invisible nommé par défaut Label1
Le Label est là pour l'effet de Drag et tant qu'à y être pour transporter la valeur de la cellule de départ

Option Explicit

Dim TempCol As Integer, TempLigne As Integer

Private Sub Grid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    'Déterminer la position originale du click de souris
    TempLigne = Grid1.RowSel
    TempCol = Grid1.ColSel
   
    'Déplacer le Label invisible sur cette cellule pour l'effet
    Label1.Move Grid1.CellLeft + Grid1.Left, _
                Grid1.CellTop + Grid1.Top, _
                Grid1.CellWidth, _
                Grid1.CellHeight
   
    'Label1 contiendra la valeur à transférer
    Label1 = Grid1.TextMatrix(TempLigne, TempCol)
   
    'Commencement du Drag
    Label1.Drag
   
End Sub

Private Sub Grid1_DragDrop(Source As Control, x As Single, y As Single)
    Dim Ligne As Integer, Colonne As Integer
    Dim strTemp As String
   
    'Déterminer l'endroit d'arrivée
    Ligne = Grid1.MouseRow
    Colonne = Grid1.MouseCol
      
    'Stocker le texte avant de l'écraser
    strTemp = Grid1.TextMatrix(Ligne, Colonne)
   
    'inscrire les 2 nouvelles valeurs
    Grid1.TextMatrix(Ligne, Colonne) = Label1.Caption
    Grid1.TextMatrix(TempLigne, TempCol) = strTemp

End Sub

MPi
3
Rejoignez-nous