Redimensionnement auto des colonnes d'un ListView avec le redimensionnement de l

Résolu
mftdev Messages postés 8 Date d'inscription mardi 22 mai 2012 Statut Membre Dernière intervention 28 juin 2012 - 25 mai 2012 à 15:14
mftdev Messages postés 8 Date d'inscription mardi 22 mai 2012 Statut Membre Dernière intervention 28 juin 2012 - 30 mai 2012 à 11:48
Bonjour,

J'ai trouvé pas mal de sujets sur le redimensionnement automatique de la largeur des colonnes d'un ListView selon la taille du texte contenu dans l'entête de colonne ou selon la taille du texte contenu dans les items,
mais je n'ai rien trouvé sur le redimensionnement automatique de la largeur des colonnes d'un ListView selon le redimensionnement de la fenêtre parente...
Je m'explique :
J'ai un ListView qui comporte 2 colonnes et qui occupe toute la largeur de ma fenêtre.
Je l'ai ancré à gauche et à droite pour qu'il suive la taille de la fenêtre, mais je voudrais aussi que mes 2 colonnes changent de taille en même temps pour se répartir la largeur...

Est-ce que ça vous semble possible ?


Merci par avance.

4 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
26 mai 2012 à 00:04
Bonsoir,

je ne me sert par de listview, mais as tu essayer quelque chose comme ça

listView2.Columns[0].Width = listView2.Width / 2;



Whismeril
3
mftdev Messages postés 8 Date d'inscription mardi 22 mai 2012 Statut Membre Dernière intervention 28 juin 2012
29 mai 2012 à 16:47
Merci Whismeril, en effet c'était tout simple !...
Je l'ai adapté en fonction de mon environnement, en fonction d'une éventuelle scrollbarre verticale
et du comportement que je souhaitais...
C'est tout simple mais ça marche nickel.

J'appelle ma fonction à chaque chargement de ma liste
et à chaque redimensionnement de la fenêtre :

Si ça peut intéresser quelqu'un...
(Attention, j'ai seulement 2 colonnes : code à généraliser si besoin)

        /// <summary>
        /// Réorganisation automatique de la largeur des colonnes de MyList
        /// selon toutes les circonstances,
        /// sauf si l'utilisateur a spécifié manuellement une largeur de colonne
        /// </summary>
        private void MyListAutoResizeColumns()
        {
            // Si l'utilisateur n'a pas modifié la largeur d'une colonne
            if (MyList.Columns[0].Width == MyList.Columns[1].Width)
            {
                // Si le nombre d'items entraîne l'utilisation d'une scrollbarre
                if ((MyList.Items.Count * 17) > (MyList.Size.Height - 28))        // La hauteur d'un item de la liste est de 17 pixels, d'une en-tête de colonne : 28 pixels
                {
                    // Le redimensionnement des colonnes se fait selon la largeur de la scrollbarre qui est de 17 pixels et une marge fixe
                    MyList.Columns[0].Width = ((MyList.Width - 17) / 2 - 2);
                    MyList.Columns[1].Width = ((MyList.Width - 17) / 2 - 2);
                }
                else
                {
                    // Le redimensionnement des colonnes se fait selon une marge fixe
                    MyList.Columns[0].Width = (lstContacts.Width / 2 - 2);
                    MyList.Columns[1].Width = (lstContacts.Width / 2 - 2);
                }
            }

        }
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
29 mai 2012 à 17:54
De rien,

clique sur réponse acceptée pour que ton sujet apparaissent résolu.

Cdt


Whismeril
0
mftdev Messages postés 8 Date d'inscription mardi 22 mai 2012 Statut Membre Dernière intervention 28 juin 2012
30 mai 2012 à 11:48
Oui, désolé,
J'ai oublié...
0
Rejoignez-nous