ScrollBar dans un listview & probleme dimension champs

DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012 - 16 janv. 2006 à 18:37
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 16 janv. 2006 à 23:13
Bonjour a tous,

Je cherche comment faire en sort que ma scrollbar vertical de ma listview soit toujour visible.

autre probleme, m'a premier ligne me donne ex: al.... normalement sa aurai du etre allo

j'ai fais me.scalemode = 3 dans mon form mais sa donne rien

merci
pour vos reponse

DraaFil
A voir également:

5 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
16 janv. 2006 à 20:50
al... ça vient de la colonne qui est trop petite.









Private Const SB_HORZ = 0

Private Const SB_VERT = 1

Private Const SB_BOTH = 3



Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long



Private Sub Form_Load()

- - - - - - - - - -

Me.Show

'example by Matthew Gates (Puff0rz@hotmail.com)

ShowScrollBar ListView1.hwnd, SB_VERT, True

End Sub

Daniel
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
16 janv. 2006 à 21:11
la taille de la colonne dépend du Scalemode de la Forme.









tu peux la mettre:

- dans les propriétés de la ListView

- dans le code en implicite

ListView1.ColumnHeaders.Add , , "NOM"

- dans le code en explicite:

ListView1.ColumnHeaders.Add , , "NOM", 100





je me suis demandé, pourquoi on n'avait pas des dimensions exactes:

100 pixels --> 100,0064

réponse:

MsgBox ScaleX(ListView1.ColumnHeaders(1).Width, vbPixels, vbHimetric)

100,0064 --> 2646 (unité métrique valeur entière)

Daniel
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
16 janv. 2006 à 22:20
daniel, pourrais-tu m'expliquer ton code, car j'ai fait un copier ,coller dans mon form et sa change rien.

Merci
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
16 janv. 2006 à 22:51
tu veux dire pour la ScrollBar ?

c'est parce que j'ai fait tous les ajouts avant

sinon je crois bien qu'il faut le refaire après chaque série d'ajouts

le nbLignes c'est le nombre de Lignes apparents (a déterminer)

pas obligatoire mais inutile parce la vrai ScrollBar va apparaître normalement.

tient c'est pas la même ScrollBar !!!





Private Sub Form_Load()
ListView1.ColumnHeaders.Add , , "NOM", 100


ListView1.ColumnHeaders.Add , , "PRENOM", 100





ListView1.ListItems.Add , , "blablabla4"


ListView1.ListItems.Add , , "blablabla2"


ListView1.ListItems.Add , , "blablabla3"


ListView1.ListItems.Add , , "blablabla4"

' etc ...




' à mettre à la fin

Me.Show

' à voir si nécessaire de mettre un DoEvents

DoEvents

ShowScrollBar ListView1.hwnd, SB_VERT, True

End Sub


Private Sub CmdAjout_Click()
ListView1.ListItems.Add , , "xxxxx1"

ListView1.ListItems.Add , , "xxxxx2"


ListView1.ListItems.Add , , "xxxxx3"

' etc ...



If ListView1.ListItems.Count < nbLignes Then
DoEvents

ShowScrollBar ListView1.hwnd, SB_VERT, True

End If

End Sub


Daniel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
16 janv. 2006 à 23:13
s'il y a pas assez de Lignes, tu peux peut être en rajouter
suffisamment pour faire apparaître la vrai ScrollBar, soit des espaces,
soit chr$(160)

ListView1.ListItems.Add , , " "

ou

ListView1.ListItems.Add , , Chr$(160)



le problème c'est que si la ListView est triée, elles vont se placer en haut ( donc pas bon)

et s'il y a des ajouts à faire, il faudra gérer les fausses lignes (pas si facile)

Daniel
0
Rejoignez-nous