1 votes

Comment obtenir des rappels pour un sous-élément de ListView ? (Propriétaire-dessin partiel)

J'ai un ListView qui contient des éléments sur quatre colonnes. Les valeurs de trois de ces colonnes sont pratiquement fixes (bien que modifiables via une boîte de dialogue d'édition d'éléments), mais la valeur de la quatrième est un indice, et je souhaite qu'elle soit calculée à la volée.

Je sais que je pourrais utiliser une liste de dessin du propriétaire, mais, à moins que je ne comprenne pas les exemples de MSDN, il semble que je doive prendre la responsabilité de toute la peinture et du rendu des éléments dans les trois autres colonnes. Tout ce dont j'ai besoin, c'est que le contrôle me demande quel est le texte de l'index pour chaque élément avant il le dessine.

Est-ce possible ? Si ce n'est pas le cas, quelles sont les solutions connues ?

3voto

RichieHindle Points 98544

Vous pouvez utiliser l'option owner draw tout en faisant en sorte que la ListView dessine elle-même certains des sous-éléments en définissant ev.DrawDefault à true pour ces colonnes :

private void MyList_DrawSubItem(object sender, DrawListViewSubItemEventArgs ev)
{
    if (!this_is_an_interesting_column(ev.ColumnIndex))
    {
        ev.DrawDefault = true;
        return;
    }

    now_handle_the_interesting_column();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X