C# Adaptation taille listview en fonction du nombre d'éléments

Résolu
chambreur Messages postés 30 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 15 mai 2014 - 14 janv. 2014 à 10:16
chambreur Messages postés 30 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 15 mai 2014 - 16 janv. 2014 à 09:22
Bonjour,
Je souhaite pouvoir redimensionner ma listview en fonction du nombre d'éléments de mes tableaux, c'est à dire:
J'ai un premier tableau qui représente le temps en seconde pour la synchro
t= 0 1 5 10 ...
et un deuxième tableau qui représente une coordonnée
x= 12 10 14 74...
j'arrive bien à afficher ce que je veux dans ma listview en faisant:
            listView1.View = View.Details;
            listView1.Columns.Add("time");
            listView1.Items.Add("x");

            for (int i = 0; i < 6; i++)
            {
                listView1.Columns.Add(x[i]);
                listView1.Items[0].SubItems.Add(t[i]);              
            }


L'ennuie c'est que je souhaite redimensionner la listview(pas les colonnes) mais la listview entière en fonction de la taille de mon tableau.

Je fais donc
          int LengthTemps = t.Length;
            listView1.Size = (LengthTemps * 30, 82);
            listView1.Size(83,42);


Mais apparement ni listView1.Size = (LengthTemps * 30, 82) ni listView1.Size(83,42) fonctionne, les 2 instructions sont rejetées.

Help please :)

3 réponses

Whismeril Messages postés 19048 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 mai 2024 656
14 janv. 2014 à 11:33
Bonjour

as tu essayé avec Width et Height?
1
chambreur Messages postés 30 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 15 mai 2014
14 janv. 2014 à 14:15
pff, je suis vraiment un débutant, je me suis vraiment embêté pour rien, c'était tout simplement Width et Height au lieu de size.

Merci beaucoup pour ta réponse Whismeril
0
Whismeril Messages postés 19048 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 mai 2024 656
14 janv. 2014 à 15:58
De rien, j'ai débuté aussi un jour et des questions c... je m'en suis posé aussi ;-)
0
PapyNormand Messages postés 27 Date d'inscription samedi 7 août 2010 Statut Membre Dernière intervention 16 janvier 2014 1
15 janv. 2014 à 19:17
Bonjour,
J'ai regardé la doc MSDN ( je donne le lien américain car je crois que le lien français ne correspondrait qu'à une traduction automatique et non à une traduction humaine )
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.size(v=vs.100).aspx
Il est écrit qu'il faut fournir à la propriété Size un object Size. Pourriez-vous essayer de remplacer
listView1.Size = (LengthTemps * 30, 82);
par
listView1.Size = new Size(LengthTemps * 30, 82);
Voir "So, adjusting the Width or Height properties of the Size returned from this property will not affect the Width or Height of the control." ( problem classique avec des proprieties définies comme des types valeur ( ce qui est le cas d'une structure ).
Autre solution ( correspondant à la phrase suivante de celle que j'ai fourni en américain ):
listView1.Size.Width = LengthTemps * 30
listView1.Size.Height = 82;
Je n'ai pas eu le temps de tester ces 2 solutions , mais je sais que j'ai utilisé la 1ère lorsque j'ai utilisé VS 2005 massivement lors de mon apprentissage de SMO.
Par contre , la documentation n'a pas change entre les versions 2.0 et 4.5.1 ( que j'utilise actuellement )
Bonne journée
0
chambreur Messages postés 30 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 15 mai 2014
16 janv. 2014 à 09:22
Bonjour PapyNormand et merci pour ton aide.

J'ai marqué le sujet comme résolu suite à la réponse de Whismeril qui est la bonne.
Il faut tout simplement marquer Width ou Height selon ce qu'on souhaite et pas directement size(Width,Height).
Dans mon cas, la solution est donc:.
listView1.Width = (LengthTemps * 70); // LengthTemps est une variable

Bonne journée à toi aussi
0
Rejoignez-nous