LISTVIEWEX

jaknight007 Messages postés 17 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 16 août 2014 - 12 août 2009 à 18:33
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009 - 25 août 2009 à 14:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50436-listviewex

Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
25 août 2009 à 14:49
Trés belle démo, 10/10. Je la garde sous le coude.
J'ai utilisé la listview pour relier (adressage relatif) les raccourcis aux programmes quand on déplace la clé. C'est un vieux projet que j'appellais automenu et que j'ai renommé lanceur parce que mon automenu sera un controle utilisateur de selection d'étiquette (Je compte gérer des codes internes et laisser l'utilisateur se débrouiller avec le vocabulaire de l'application).
Je n'avais pas l'intention de le poster, mais si ca peut donner des idées.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
18 août 2009 à 15:50
J'ai modifié pas mal de choses :

- Problème de l'ImageIndex corrigé
- Problème du PrintSetup corrigé (suffisait d'ajouté mSetupDlg.EnableMetric = True)
- Gestion des Groups améliorés (noms de propriétés plus harmonieux, plus performant,...)
- Tout le code ExViexMode a été réécrit (options ajoutés, variables renommées, code restructuré, bugs corrigés). C'est beaucoup plus clair ainsi et plus fidèle à la LV originale

Je poste ça dans 5 min.
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
17 août 2009 à 19:07
Merci Bouv,

Ca fonctionne en ajoutant ImageIndex. (la mise à jour de ton code pour ne pas rendre obligatoire cette option m'intéresse, mais rien est pressé !)

Je vais essayer d'être plus explicite pour le 2e problème (il est vrai que j'étais légèrement brouillon)

1) Imprime
2) Mesure la marge haut (2,54 cm = 1 pouce)
3) Mise en page
4) Valider (10 mm)
5) Imprime
6) Mesure la marge haut (1 cm : la marge est 2.54 fois plus petite)
7) Mise en page
8) Valider (3.9 mm)
9) Imprime
10) Mesure la marge haut (la marge est 2.54 fois plus petite)
11) Mise en page
12) Valider (1.5 mm)
et ainsi de suite...

Conclusions :
Après validation de la mise en page sur 1 certaine taille, la page est correctement imprimée à la bonne taille.
Cependant, lors de l'affichage des valeurs de mise en page, les valeurs sont erronées et sont 2.54 fois trop petite.
Quand on affiche les valeurs, elles sont exprimées en dixièmes de pouce.
Quand on valide les valeurs, elles sont exprimées en millimètres.

Conséquence :
Si l'on configure la mise en page et que l'on valide sans modifier aucune valeur, les valeurs sont divisées par 2.54 (pour rappel, 1 pouce = 2.54 cm)
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
17 août 2009 à 15:09
Pour la méthode d'ajout des items, je vois d'où viens le problème. Il faut impérativement spécifier la propriété ImageIndex.
Essai le code suivant :

Dim lvi As New ListViewItem(LV.Items.Count)
lvi.SubItems.Add(LV.Items.Count)
lvi.ImageIndex = 0
LV.Items.Add(lvi)

Je tenterai de corriger ça prochainement.

Par contre j'ai pas tout pigé au deuxième problème.
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
17 août 2009 à 13:50
Bonjour,

A première vue, cette listview me semble très bien !

Et je crois que je vais maintenant l'utiliser pour mes futures appli.

J'ai rajouté 1 bouton pour ajouter 1 item à la LV afin de vérifier le nombre de pages pour l'impression, c'est tout bon ! (par contre, bizarrement, je ne sais pas encore pourquoi, je n'ai pas poussé la recherche, mais la ligne ajoutée était vide, j'ai donc utilisé ta méthode, j'en profite pour mettre le code à la fin de ce commentaire)

J'ai par contre constaté 1 bug que je connaissais, je n'avais pas vérifié si ce bug était corrigé depuis, mais il semble que non, bug constaté la 1ère fois il y a quelques années en VB .Net 2003, qui semble bizarrement toujours d'actualité avec VB .Net 2008 Express : aperçu, on voit des marges d'environ 2.5 cm, mise en page, ca affiche 10 (mm) mais il s'agit en fait de l'affichage de 10 dixième de pouce, soit 1 pouce, soit 2.54 cm, ce qui semble correspondre à la marge constatée visuellement, si on valide, les 10 (mm) sont enregistrées, aperçu, la marge est réduite à priori à 1 cm (donc les 10 mm semblent ok), re mise en page, et le nombre a encore été divisé par 2.54 ! et ainsi de suite... (j'espère m'être fait comprendre)

Bonne prog !
++

Private Sub Button_Ajoute_1_item_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Ajoute_1_item.Click
'Dim lvi As New ListViewItem(LV.Items.Count)
'lvi.SubItems.Add(LV.Items.Count)
'LV.Items.Add(lvi)
Dim MyItem As ListViewItem
MyItem = New ListViewItem(New String() {"DMB GS.mp3", "Dave Matthews Band", "Grey Street", "Busted Stuff"}, 0)
With LV
.Items.Add(MyItem)
End With
End Sub
BadoqueAlex Messages postés 129 Date d'inscription mardi 20 juillet 2004 Statut Membre Dernière intervention 6 juin 2009
13 août 2009 à 11:35
Bien. Un meilleur exemple aurait été de reprendre le style graphique de Vista ou du MediaPlayer pour ton CS. 7/10
jaknight007 Messages postés 17 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 16 août 2014
12 août 2009 à 18:33
Très intéressante ta listview ! Je l'essaie avec grand plaisir
Rejoignez-nous