Exporter (0) Imprimer
Développer tout
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.DrawSubItem, événement

Se produit lorsque le mode Détails de 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 DrawListViewSubItemEventHandler DrawSubItem

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

RemarqueRemarque

Les informations de sous-élément apparaissent généralement en mode Mosaïque et Détails, mais elles doivent être dessinées dans un gestionnaire de l'événement DrawItem en mode Mosaïque.

L'événement DrawSubItem peut se produire pour chaque sous-élément ListView. Vous pouvez gérer l'événement DrawItem pour dessiner des éléments communs à tous les sous-é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

L'événement DrawSubItem ne se produit pas pour les sous-éléments pour lesquels aucun objet ColumnHeader n'a été ajouté à la collection Columns. Notez également que le premier sous-élément de chaque objet ListViewItem représente l'élément parent proprement dit, et s'affiche dans la première colonne.

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 DrawSubItem. Pour obtenir l'exemple complet, consultez la rubrique de référence OwnerDraw.


// Draws subitem text and applies content-based formatting.
private void listView1_DrawSubItem(object sender,
    DrawListViewSubItemEventArgs e)
{
    TextFormatFlags flags = TextFormatFlags.Left;

    using (StringFormat sf = new StringFormat())
    {
        // Store the column text alignment, letting it default
        // to Left if it has not been set to Center or Right.
        switch (e.Header.TextAlign)
        {
            case HorizontalAlignment.Center:
                sf.Alignment = StringAlignment.Center;
                flags = TextFormatFlags.HorizontalCenter;
                break;
            case HorizontalAlignment.Right:
                sf.Alignment = StringAlignment.Far;
                flags = TextFormatFlags.Right;
                break;
        }

        // Draw the text and background for a subitem with a 
        // negative value. 
        double subItemValue;
        if (e.ColumnIndex > 0 && Double.TryParse(
            e.SubItem.Text, NumberStyles.Currency,
            NumberFormatInfo.CurrentInfo, out subItemValue) &&
            subItemValue < 0)
        {
            // Unless the item is selected, draw the standard 
            // background to make it stand out from the gradient.
            if ((e.ItemState & ListViewItemStates.Selected) == 0)
            {
                e.DrawBackground();
            }

            // Draw the subitem text in red to highlight it. 
            e.Graphics.DrawString(e.SubItem.Text,
                listView1.Font, Brushes.Red, e.Bounds, sf);

            return;
        }

        // Draw normal text for a subitem with a nonnegative 
        // or nonnumerical value.
        e.DrawText(flags);
    }
}


.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