TP4 C# - Déplacement des éléments d’une liste vers une autre liste

1/5
100%

TP4 C#- Déplacement des éléments d’une liste vers une autre liste

Réaliser l’application suivante qui permet de déplacer les éléments de la liste gauche vers la liste droite et vice versa.

L’application contient un contrôle TabControl avec 4 onglets (4 contrôles TabPages) :

Premier onglet : contient 2 deux contrôles ListBox à une sélection (propriété SelectionMode=one)

![](data:image/png;base64...)

Deuxième onglet : contient 2 contrôles ListBox à plusieurs sélections (propriété SectionMode= MutliExtended)

![](data:image/png;base64...)

Troisième onglet : contient deux contrôles CheckListbox à une sélection

![](data:image/png;base64...)

Quatrième onglet : 2 deux contrôles ListBox à une sélection sans les boutons de déplacement. En effet, le déplacement se fait par le phénomène du Drag and Drop (glisser-déplacer) avec la souris de la liste gauche vers la liste droite et vice-versa.

![](data:image/png;base64...)

| | |

| --- | --- |

Publicité

| Contrôle | Nom |

| ListBox | LstGn, LstDn avec n=1,2,3,4 |

| Button | BtnAjoutn, BtnSuppn, BtnVidern, BtnGDn, BtnDToutn, BtnDGn, BtnDGToutn avec n=1,2,3,4, |

  • Le bouton Ajouter permet d’ouvrir le formulaire FrmInputBox pour la saisie de l’élément.

![](data:image/png;base64...)

  • Le bouton Supprimer permet de supprimer le(s) élément(s) sélectionné(s) (ou cochés) de la liste gauche.
  • Le bouton Vider permet de supprimer tous les éléments de la liste gauche.
  • Le bouton > permet de déplacer le(s) élément(s) sélectionné(s) (ou cochés) de la liste gauche vers la liste droite
  • Le bouton >> permet de déplacer tous les éléments de la liste gauche vers la liste droite
  • Le bouton < permet de déplacer le(s) élément(s) sélectionné(s) (ou cochés) de la liste droite vers la liste gauche
  • Le bouton << permet de déplacer tous les éléments de la liste droite vers la liste gauche

Annexe :

1. ListBox :

Un contrôle ListBox affiche une liste simple dans laquelle l'utilisateur peut sélectionner un ou plusieurséléments. Si le nombre d'éléments est trop grand pour tenir dans la zone affichée, une barre de défilement lui estautomatiquement ajoutée.

La liste de texte est un tableau de chaînes de caractères dont le premier élément a l’indice 0. L’accès auxéléments du tableau se fait à partir de la propriété Items. Les propriétés principales d’une liste de texte sont :

| | |

| --- | --- |

| Propriété etméthode | Description |

Publicité

| Items(i) | Le ième élément de la liste |

| SelectedItem | l’élément de la liste sélectionné |

| SelectedItems | Une collection avec les éléments de la liste sélectionnés |

| SelectedIndex | Indice de l’élément sélectionné de la liste |

| Items.Add(element) | Ajoute element à la fin de la liste |

| Items.Remove | Supprimer l’élément sélectionné |

| Items.Insert(indexe, element) | Insérer element a la position indiquée par indexe |

| Items.RemoveAt(indexe) | Supprimer l’élément a la position indexe |

| Items.clear | Vider toute la liste |

| Items.count | Nombre des éléments de la liste |

1. Drag drop ou glisser déplacer en C#

2. Glisser

Toutes les opérations glisser-déplacer commencent par un glisser. La fonctionnalité qui autorise la collecte des données au début de l'opération glisser est implémentée dans la méthode [DoDragDrop](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.dodragdrop%28v%3Dvs.110%29.aspx).

Publicité

L'événement [MouseDown](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.mousedown%28v%3Dvs.110%29.aspx) est utilisé pour démarrer l'opération glisser parce qu'il est le plus intuitif.

Ajouter l’événement MouseDown à LstG4 qui appelle la méthode DoDraDrop

private void LstG4\_MouseDown(object sender, MouseEventArgs e)

{

if (LstG4.SelectedIndex != -1)

{

LstG4.DoDragDrop(LstG4.SelectedItem, DragDropEffects.Move|DragDropEffects.Copy);

}

}

1. Déplacer

Affecter la valeur true à la propriété [AllowDrop](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.allowdrop%28v%3Dvs.110%29.aspx) pour LstD4

Dans l'événement DragEnter pour le contrôle où le déplacement se produira, assurez-vous que les données qui font l'objet de l'opération glisser sont d'un type acceptable (dans ce cas, [Text](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.text%28v%3Dvs.110%29.aspx)). Le code définit ensuite l'effet produit lorsque le déplacement a lieu en lui attribuant une valeur de l'énumération [DragDropEffects](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.dragdropeffects%28v%3Dvs.110%29.aspx).

private void LstD4\_DragEnter(object sender, DragEventArgs e)

Publicité

{

if (e.Data.GetDataPresent(DataFormats.Text))

e.Effect = DragDropEffects.Copy;

else

e.Effect = DragDropEffects.None;

}

Dans l'événement [DragDrop](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.dragdrop%28v%3Dvs.110%29.aspx) du contrôle où les données sont déplacées, utilisez la méthode [GetData](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.dataobject.getdata%28v%3Dvs.110%29.aspx) pour récupérer les données que vous faites glisser.

private void LstD4\_DragDrop(object sender, DragEventArgs e)

{

LstD4.Items.Add(e.Data.GetData(DataFormats.Text));

LstG4.Items.Remove(e.Data.GetData(DataFormats.Text));

}

TP4 C# - Déplacement des éléments d’une liste vers une autre liste

Programming in C# · notes

Voir tous les documents en programmation

TP4 C#- Déplacement des éléments d’une liste vers une autre liste

Réaliser l’application suivante qui permet de déplacer les éléments de la liste gauche vers la liste droite et vice versa.

L’application contient un contrôle TabControl avec 4 onglets (4 contrôles TabPages) :

Premier onglet : contient 2 deux contrôles ListBox à une sélection (propriété SelectionMode=one)

![](data:image/png;base64...)

Deuxième onglet : contient 2 contrôles ListBox à plusieurs sélections (propriété SectionMode= MutliExtended)

![](data:image/png;base64...)

Troisième onglet : contient deux contrôles CheckListbox à une sélection

![](data:image/png;base64...)

Quatrième onglet : 2 deux contrôles ListBox à une sélection sans les boutons de déplacement. En effet, le déplacement se fait par le phénomène du Drag and Drop (glisser-déplacer) avec la souris de la liste gauche vers la liste droite et vice-versa.

![](data:image/png;base64...)

| | |

| --- | --- |

Publicité

| Contrôle | Nom |

| ListBox | LstGn, LstDn avec n=1,2,3,4 |

| Button | BtnAjoutn, BtnSuppn, BtnVidern, BtnGDn, BtnDToutn, BtnDGn, BtnDGToutn avec n=1,2,3,4, |

  • Le bouton Ajouter permet d’ouvrir le formulaire FrmInputBox pour la saisie de l’élément.

![](data:image/png;base64...)

  • Le bouton Supprimer permet de supprimer le(s) élément(s) sélectionné(s) (ou cochés) de la liste gauche.
  • Le bouton Vider permet de supprimer tous les éléments de la liste gauche.
  • Le bouton > permet de déplacer le(s) élément(s) sélectionné(s) (ou cochés) de la liste gauche vers la liste droite
  • Le bouton >> permet de déplacer tous les éléments de la liste gauche vers la liste droite
  • Le bouton < permet de déplacer le(s) élément(s) sélectionné(s) (ou cochés) de la liste droite vers la liste gauche
  • Le bouton << permet de déplacer tous les éléments de la liste droite vers la liste gauche

Annexe :

1. ListBox :

Un contrôle ListBox affiche une liste simple dans laquelle l'utilisateur peut sélectionner un ou plusieurséléments. Si le nombre d'éléments est trop grand pour tenir dans la zone affichée, une barre de défilement lui estautomatiquement ajoutée.

La liste de texte est un tableau de chaînes de caractères dont le premier élément a l’indice 0. L’accès auxéléments du tableau se fait à partir de la propriété Items. Les propriétés principales d’une liste de texte sont :

| | |

| --- | --- |

| Propriété etméthode | Description |

Publicité

| Items(i) | Le ième élément de la liste |

| SelectedItem | l’élément de la liste sélectionné |

| SelectedItems | Une collection avec les éléments de la liste sélectionnés |

| SelectedIndex | Indice de l’élément sélectionné de la liste |

| Items.Add(element) | Ajoute element à la fin de la liste |

| Items.Remove | Supprimer l’élément sélectionné |

| Items.Insert(indexe, element) | Insérer element a la position indiquée par indexe |

| Items.RemoveAt(indexe) | Supprimer l’élément a la position indexe |

| Items.clear | Vider toute la liste |

| Items.count | Nombre des éléments de la liste |

1. Drag drop ou glisser déplacer en C#

2. Glisser

Toutes les opérations glisser-déplacer commencent par un glisser. La fonctionnalité qui autorise la collecte des données au début de l'opération glisser est implémentée dans la méthode [DoDragDrop](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.dodragdrop%28v%3Dvs.110%29.aspx).

Publicité

L'événement [MouseDown](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.mousedown%28v%3Dvs.110%29.aspx) est utilisé pour démarrer l'opération glisser parce qu'il est le plus intuitif.

Ajouter l’événement MouseDown à LstG4 qui appelle la méthode DoDraDrop

private void LstG4\_MouseDown(object sender, MouseEventArgs e)

{

if (LstG4.SelectedIndex != -1)

{

LstG4.DoDragDrop(LstG4.SelectedItem, DragDropEffects.Move|DragDropEffects.Copy);

}

}

1. Déplacer

Affecter la valeur true à la propriété [AllowDrop](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.allowdrop%28v%3Dvs.110%29.aspx) pour LstD4

Dans l'événement DragEnter pour le contrôle où le déplacement se produira, assurez-vous que les données qui font l'objet de l'opération glisser sont d'un type acceptable (dans ce cas, [Text](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.text%28v%3Dvs.110%29.aspx)). Le code définit ensuite l'effet produit lorsque le déplacement a lieu en lui attribuant une valeur de l'énumération [DragDropEffects](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.dragdropeffects%28v%3Dvs.110%29.aspx).

private void LstD4\_DragEnter(object sender, DragEventArgs e)

Publicité

{

if (e.Data.GetDataPresent(DataFormats.Text))

e.Effect = DragDropEffects.Copy;

else

e.Effect = DragDropEffects.None;

}

Dans l'événement [DragDrop](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.control.dragdrop%28v%3Dvs.110%29.aspx) du contrôle où les données sont déplacées, utilisez la méthode [GetData](https://msdn.microsoft.com/fr-fr/library/system.windows.forms.dataobject.getdata%28v%3Dvs.110%29.aspx) pour récupérer les données que vous faites glisser.

private void LstD4\_DragDrop(object sender, DragEventArgs e)

{

LstD4.Items.Add(e.Data.GetData(DataFormats.Text));

LstG4.Items.Remove(e.Data.GetData(DataFormats.Text));

}