Exporter (0) Imprimer
Développer tout

ListView, classe

Représente un contrôle list view Windows, qui peut afficher une collection d'éléments de quatre manières différentes.

Espace de noms : System.Windows.Forms
Assembly : System.Windows.Forms (dans system.windows.forms.dll)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class ListView : Control
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class ListView extends Control
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public class ListView extends Control

Le contrôle ListView vous permet d'afficher une liste d'éléments avec le texte de chaque élément et éventuellement, une icône identifiant le type de l'élément. Par exemple, la liste de fichiers de l'Explorateur Windows se présente de façon similaire à un contrôle ListView. Elle affiche une liste des fichiers et des dossiers actuellement sélectionnés dans l'arborescence. Une icône associée à chaque fichier ou dossier est affichée afin d'identifier facilement le type du fichier ou dossier. La classe ListViewItem représente un élément dans un contrôle ListView. Les éléments de la liste peuvent être affichés de cinq manières différentes. Ils peuvent apparaître sous forme de grandes icônes, de petites icônes ou de petites icônes dans une liste verticale. Les éléments peuvent aussi contenir des sous-éléments comportant des informations relatives à l'élément parent. Le mode Détails permet d'afficher l'élément et ses sous-éléments sous forme de grille avec des titres de colonnes qui identifient les informations affichées dans un sous-élément. Le mode Mosaïque, qui offre une disponibilité limitée comme décrit ci-dessous, permet d'afficher l'élément et ses sous-éléments sous forme de mosaïque qui contient une grande icône en regard des informations textuelles. ListView prend en charge une ou plusieurs sélections. La fonctionnalité de sélection multiple permet à l'utilisateur de sélectionner des éléments de la liste d'une manière analogue à un contrôle ListBox. De plus, l'utilisateur a la possibilité d'activer les éléments sélectionnés pour effectuer une tâche donnée. Par exemple, l'utilisation d'un contrôle ListView permet d'afficher une liste des fichiers qui peuvent être ouverts et utilisés dans une application. L'utilisateur sélectionne ensuite les fichiers à ouvrir, puis double-clique dessus pour activer les éléments et ouvrir les fichiers dans l'application. ListView offre également la possibilité d'afficher des cases à cocher, au moyen de la propriété CheckBoxes, de manière à permettre à l'utilisateur de sélectionner les éléments sur lesquels il veut effectuer une opération. Le contrôle ListView peut être utilisé de plusieurs façons. Il peut servir à afficher des informations provenant d'une application, d'une base de données ou d'un fichier texte. ListView peut également être employé pour demander à l'utilisateur d'entrer des informations, par exemple en sélectionnant un ensemble de fichiers à traiter.

ListView fournit un grand nombre de propriétés qui permettent de définir l'apparence et le comportement des éléments avec une grande souplesse. La propriété View vous permet de modifier le mode d'affichage des éléments. Les propriétés LargeImageList, SmallImageList et StateImageList vous permettent de spécifier les objets ImageList qui contiennent les images affichées pour les éléments et, dans le cas de StateImageList, les cases à cocher affichées lorsque la propriété CheckBoxes a la valeur true. Pour déterminer les éléments qui ont été sélectionnés, vous pouvez utiliser la propriété CheckedItems afin d'accéder à la collection ListView.CheckedListViewItemCollection. La propriété Columns permet d'accéder à ListView.ColumnHeaderCollection, qui stocke les en-têtes de colonne affichés lorsque la propriété View du contrôle a la valeur Details. Les éléments peuvent être ajoutés ou supprimés dans ListView à l'aide de la propriété Items. La propriété Items permet d'accéder à la collection ListView.ListViewItemCollection du contrôle, qui fournit des méthodes de manipulation des éléments du contrôle. Si vous souhaitez permettre à l'utilisateur de modifier le texte d'un élément, utilisez la propriété LabelEdit. Lorsque votre contrôle contient un grand nombre d'éléments, il est souvent plus commode pour l'utilisateur de les afficher dans une liste triée. Vous pouvez utiliser la propriété Sorting pour trier les éléments par ordre alphabétique. Vous pouvez également personnaliser l'apparence complète d'un contrôle ListView. Pour ce faire, affectez true à la propriété OwnerDraw et gérez un ou plusieurs des événements suivants : DrawItem, DrawSubItem, DrawColumnHeader.

De nombreuses propriétés du contrôle ListView sont utilisées lorsque la propriété View du contrôle a la valeur Details. La propriété AllowColumnReorder permet à l'utilisateur de votre contrôle ListView de redéfinir l'ordre des colonnes au moment de l'exécution. La propriété FullRowSelect permet de sélectionner à la fois un élément et ses sous-éléments plutôt que l'élément seul. Pour afficher un quadrillage en mode Détails permettant d'identifier les limites des éléments et des sous-éléments dans ListView, utilisez la propriété GridLines. La propriété HeaderStyle vous permet de spécifier le type des en-têtes de colonne à afficher.

Outre les nombreuses propriétés disponibles pour un contrôle ListView, il existe des méthodes et des événements qui peuvent être employés par votre application pour apporter des fonctionnalités supplémentaires à ListView. Les méthodes BeginUpdate et EndUpdate permettent d'améliorer les performances lorsque vous ajoutez plusieurs éléments à ListView, en empêchant le contrôle de repeindre chaque fois qu'un élément est ajouté. Si votre contrôle ListView affiche des éléments et des sous-éléments, il peut être utile de fournir une fonctionnalité lorsque l'utilisateur clique avec le bouton droit sur un sous-élément. La méthode GetItemAt permet de déterminer l'élément auquel appartient le sous-élément sur lequel l'utilisateur a cliqué. Lors de la validation des éléments après leur modification par l'utilisateur, il peut parfois être utile d'afficher un élément spécifique pour que l'utilisateur y apporte des modifications. La méthode EnsureVisible peut être appelée pour s'assurer que l'élément en question se trouve bien dans la zone visible du contrôle.

Si la propriété LabelEdit a la valeur true, vous pouvez effectuer des tâches telles que la validation du texte modifié, avant et après sa modification, en créant un gestionnaire d'événements pour les événements BeforeLabelEdit et AfterLabelEdit. Pour effectuer des tâches telles que l'ouverture d'un fichier ou l'affichage d'une boîte de dialogue permettant de modifier un élément affiché dans ListView, vous pouvez créer un gestionnaire d'événements pour l'événement ItemActivate. Si vous autorisez l'utilisateur à trier les éléments dans ListView lorsqu'il clique sur un en-tête de colonne, vous pouvez créer un gestionnaire d'événements pour l'événement ColumnClick qui réalisera le tri. Lorsque la propriété CheckBoxes a la valeur true, vous pouvez déterminer si un changement s'est produit dans l'état d'activation d'un élément en gérant l'événement ItemCheck.

Vous pouvez également définir une image d'arrière-plan pour ListView à l'aide de la propriété BackgroundImage. Votre application doit avoir STAThreadAttribute sur sa méthode Main pour afficher correctement l'image d'arrière-plan du contrôle ListView. De plus, si un contrôle ListView contenant une image d'arrière-plan est hébergé dans Internet Explorer, spécifiez comctl32.dll version 6.0 comme assembly dépendant dans le fichier manifeste d'application pour garantir un affichage correct de l'image d'arrière-plan.

RemarqueRemarque

La définition de la propriété Cursor d'un contrôle ListView reste sans effet sur l'apparence du curseur dans les versions 1.1 et antérieures du .NET Framework.

Windows XP et Windows Server 2003 fournissent trois fonctionnalités qui améliorent le contrôle ListView lorsque votre application appelle la méthode Application.EnableVisualStyles : l'affichage en mosaïque, le regroupement et la marque d'insertion.

L'affichage en mosaïque permet d'équilibrer les informations graphiques et textuelles en affichant le texte de l'élément et de ses sous-éléments en regard de grandes icônes. Affectez View.Tile à la propriété View pour activer ce comportement.

La fonctionnalité de regroupement permet de regrouper visuellement des éléments dans des catégories connexes. Utilisez la propriété Groups pour ajouter des objets ListViewGroup au contrôle ListView lorsque vous souhaitez activer cette fonctionnalité. Pour désactiver temporairement la fonctionnalité, affectez la valeur false à la propriété ShowGroups.

La fonctionnalité de marque d'insertion prend en charge le repositionnement d'éléments par glisser-déplacer avec la rétroaction visuelle pour indiquer les emplacements de déplacement. Utilisez l'objet ListViewInsertionMark récupéré par l'intermédiaire de la propriété InsertionMark pour afficher la marque d'insertion.

Ces fonctionnalités sont uniquement disponibles dans Windows XP et Windows Server 2003. Sur les plates-formes antérieures, le code s'appliquant à ces fonctionnalités reste sans effet, l'affichage en mosaïque apparaît en mode Grandes icônes, et la marque d'insertion et les groupes ne s'affichent pas. Dans certains cas, vous souhaitez peut-être inclure un code qui détermine si ces fonctionnalités sont disponibles, et fournir d'autres fonctionnalités lorsqu'elles ne le sont pas. Ces fonctionnalités sont fournies par la même bibliothèque qui fournit la fonctionnalité des thèmes du système d'exploitation. Pour vérifier la disponibilité de cette bibliothèque, appelez la surcharge de méthode FeatureSupport.IsPresent(Object) et passez la valeur OSFeature.Themes.

Le tableau suivant présente quelques-uns des membres ListView et les affichages dans lesquels ils sont valides.

Membre ListView

Affichage

Propriété Alignment

SmallIcon - ou - LargeIcon

Propriété AutoArrange

SmallIcon - ou - LargeIcon

Méthode AutoResizeColumn

Details

Propriété Columns

Details - ou - Tile

Événement DrawSubItem.

Details

Méthode FindItemWithText

Details, List ou Tile

Méthode FindNearestItem

SmallIcon - ou - LargeIcon

Méthode GetItemAt

Details - ou - Tile

Propriété Groups

Tous les affichages sauf List

Propriété HeaderStyle

Details

Propriété InsertionMark

LargeIcon, SmallIcon ou Tile

L'exemple de code suivant crée un contrôle ListView contenant trois objets ListViewItem spécifiés et trois objets ListViewItem.ListViewSubItem spécifiés pour chaque élément. L'exemple crée également des objets ColumnHeader pour afficher les sous-éléments en mode Détails. Deux objets ImageList sont également créés dans l'exemple de code afin de fournir des images pour les objets ListViewItem. Ces objets ImageList sont ajoutés aux propriétés LargeImageList et SmallImageList. L'exemple utilise les propriétés suivantes pour créer le contrôle ListView :

  • View

  • LabelEdit

  • AllowColumnReorder

  • CheckBoxes

  • FullRowSelect

  • GridLines

  • Sorting

Cet exemple requiert que le code ait été ajouté à Form et que la méthode créée dans l'exemple ait été appelée à partir du constructeur ou d'une autre méthode du formulaire. L'exemple requiert également que les images appelées MySmallImage1, MySmallImage2, MyLargeImage1 et MyLargeImage2 se trouvent dans le répertoire racine du lecteur C.

private void CreateMyListView()
{
    // Create a new ListView control.
    ListView listView1 = new ListView();
    listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200));

    // Set the view to show details.
    listView1.View = View.Details;
    // Allow the user to edit item text.
    listView1.LabelEdit = true;
    // Allow the user to rearrange columns.
    listView1.AllowColumnReorder = true;
    // Display check boxes.
    listView1.CheckBoxes = true;
    // Select the item and subitems when selection is made.
    listView1.FullRowSelect = true;
    // Display grid lines.
    listView1.GridLines = true;
    // Sort the items in the list in ascending order.
    listView1.Sorting = SortOrder.Ascending;
                
    // Create three items and three sets of subitems for each item.
    ListViewItem item1 = new ListViewItem("item1",0);
    // Place a check mark next to the item.
    item1.Checked = true;
    item1.SubItems.Add("1");
    item1.SubItems.Add("2");
    item1.SubItems.Add("3");
    ListViewItem item2 = new ListViewItem("item2",1);
    item2.SubItems.Add("4");
    item2.SubItems.Add("5");
    item2.SubItems.Add("6");
    ListViewItem item3 = new ListViewItem("item3",0);
    // Place a check mark next to the item.
    item3.Checked = true;
    item3.SubItems.Add("7");
    item3.SubItems.Add("8");
    item3.SubItems.Add("9");

    // Create columns for the items and subitems.
    listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
    listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);

    //Add the items to the ListView.
            listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3});

    // Create two ImageList objects.
    ImageList imageListSmall = new ImageList();
    ImageList imageListLarge = new ImageList();

    // Initialize the ImageList objects with bitmaps.
    imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp"));
    imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp"));
    imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp"));
    imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp"));

    //Assign the ImageList objects to the ListView.
    listView1.LargeImageList = imageListLarge;
    listView1.SmallImageList = imageListSmall;

    // Add the ListView to the control collection.
    this.Controls.Add(listView1);
}

private void CreateMyListView()
{
    // Create a new ListView control.
    ListView listView1 = new ListView();
    listView1.set_Bounds(new Rectangle(new Point(10, 10), 
        new Size(300, 200)));

    // Set the view to show details.
    listView1.set_View(View.Details);

    // Allow the user to edit item text.
    listView1.set_LabelEdit(true);

    // Allow the user to rearrange columns.
    listView1.set_AllowColumnReorder(true);

    // Display check boxes.
    listView1.set_CheckBoxes(true);

    // Select the item and subitems when selection is made.
    listView1.set_FullRowSelect(true);

    // Display grid lines.
    listView1.set_GridLines(true);

    // Sort the items in the list in ascending order.
    listView1.set_Sorting(SortOrder.Ascending);

    // Create three items and three sets of subitems for each item.
    ListViewItem item1 = new ListViewItem("item1", 0);

    // Place a check mark next to the item.
    item1.set_Checked(true);

    item1.get_SubItems().Add("1");
    item1.get_SubItems().Add("2");
    item1.get_SubItems().Add("3");

    ListViewItem item2 = new ListViewItem("item2", 1);
    item2.get_SubItems().Add("4");
    item2.get_SubItems().Add("5");
    item2.get_SubItems().Add("6");

    ListViewItem item3 = new ListViewItem("item3", 0);

    // Place a check mark next to the item.
    item3.set_Checked(true);

    item3.get_SubItems().Add("7");
    item3.get_SubItems().Add("8");
    item3.get_SubItems().Add("9");

    // Create columns for the items and subitems.
    listView1.get_Columns().Add("Item Column", -2, 
        HorizontalAlignment.Left);
    listView1.get_Columns().Add("Column 2", -2, HorizontalAlignment.Left);
    listView1.get_Columns().Add("Column 3", -2, HorizontalAlignment.Left);
    listView1.get_Columns().Add("Column 4", -2, HorizontalAlignment.Center);

    //Add the items to the ListView.
    listView1.get_Items().AddRange(new ListViewItem[] { item1, item2, 
        item3 });

    // Create two ImageList objects.
    ImageList imageListSmall = new ImageList();
    ImageList imageListLarge = new ImageList();

    // Initialize the ImageList objects with bitmaps.
    imageListSmall.get_Images().Add(Bitmap.FromFile(
        "C:\\MySmallImage1.bmp"));
    imageListSmall.get_Images().Add(Bitmap.FromFile(
        "C:\\MySmallImage2.bmp"));
    imageListLarge.get_Images().Add(Bitmap.FromFile(
        "C:\\MyLargeImage1.bmp"));
    imageListLarge.get_Images().Add(Bitmap.FromFile(
        "C:\\MyLargeImage2.bmp"));

    //Assign the ImageList objects to the ListView.
    listView1.set_LargeImageList(imageListLarge);
    listView1.set_SmallImageList(imageListSmall);

    // Add the ListView to the control collection.
    this.get_Controls().Add(listView1);
} //CreateMyListView

Les membres statiques publics (Shared en Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile pour Pocket PC, Windows Mobile pour Smartphone, Windows Server 2003, Windows XP Édition Media Center, Windows XP Professionnel Édition x64, Windows XP SP2, Windows XP Starter Edition

Le .NET Framework ne prend pas en charge toutes les versions de chaque plate-forme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise.

.NET Framework

Prise en charge dans : 2.0, 1.1, 1.0

.NET Compact Framework

Prise en charge dans : 2.0, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft