Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
DrawItem, événement
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

ListView.DrawItem, événement

Se produit lorsque ListView est dessiné et que la propriété OwnerDraw a la valeur true.

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

public event DrawListViewItemEventHandler DrawItem

Cet événement vous permet de personnaliser l'apparence d'un contrôle ListView à l'aide d'un dessin owner-drawn. Il se déclenche uniquement lorsque la propriété OwnerDraw a la valeur true. Pour plus d'informations sur les dessins owner-drawn, consultez la rubrique de référence pour la propriété OwnerDraw.

L'événement DrawItem peut se produire pour chaque élément ListView. Lorsque la propriété View a la valeur View.Details, les événements DrawSubItem et DrawColumnHeader se produisent également. Dans ce cas, vous pouvez gérer l'événement DrawItem pour dessiner des éléments communs à tous les éléments, par exemple l'arrière-plan, et gérer l'événement DrawSubItem pour dessiner des éléments pour les sous-éléments, par exemple des valeurs texte. Vous pouvez également dessiner tous les éléments du contrôle ListView en utilisant uniquement l'un des deux événements, même si cela est moins pratique. Pour dessiner des en-têtes de colonnes en mode Détails, vous devez gérer l'événement DrawColumnHeader.

RemarqueRemarque

En raison d'un bogue dans le contrôle Win32 sous-jacent, l'événement DrawItem se produit sans événements DrawSubItem associés une fois par ligne en mode Détails lorsque le pointeur de la souris est positionné sur la ligne, et tout élément peint dans un gestionnaire d'événements DrawSubItem est remplacé par un arrière-plan personnalisé dessiné dans un gestionnaire d'événements DrawItem. Consultez l'exemple contenu dans la rubrique de référence OwnerDraw pour obtenir une solution qui invalide chaque ligne lorsque l'événement supplémentaire se produit. Une autre solution consiste à insérer l'ensemble de votre code de dessin personnalisé dans un gestionnaire d'événements DrawSubItem et à peindre l'arrière-plan de l'élément entier (y compris ses sous-éléments) uniquement lorsque DrawListViewSubItemEventArgs.ColumnIndex a la valeur 0.

Pour plus d'informations sur la gestion des événements, consultez Consommation d'événements.

L'exemple de code suivant fournit une implémentation d'un gestionnaire d'événement DrawItem. Pour obtenir l'exemple complet, consultez la rubrique de référence OwnerDraw.


// Draws the backgrounds for entire ListView items.
private void listView1_DrawItem(object sender,
    DrawListViewItemEventArgs e)
{
    if ((e.State & ListViewItemStates.Selected) != 0)
    {
        // Draw the background and focus rectangle for a selected item.
        e.Graphics.FillRectangle(Brushes.Maroon, e.Bounds);
        e.DrawFocusRectangle();
    }
    else
    {
        // Draw the background for an unselected item.
        using (LinearGradientBrush brush =
            new LinearGradientBrush(e.Bounds, Color.Orange,
            Color.Maroon, LinearGradientMode.Horizontal))
        {
            e.Graphics.FillRectangle(brush, e.Bounds);
        }
    }

    // Draw the item text for views other than the Details view.
    if (listView1.View != View.Details)
    {
        e.DrawText();
    }
}


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

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

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft