ListView largeur adaptée et largeur colonnes
Bonjour la communauté, j'espère que vous allez bien :)
j'ai soucis pour une listView qui est le suivant :
1. Suite à un évènement donné des colonnes se rajoutent automatiquement à ma listview. OK mais ce que je voudrais faire c'est que la listview se redimensionne (s'élargisee) automatiquement afficher toutes les colonnes sans avoir à défiler avec la flèche vers la droite. Ça c'est de un.
2. Pour les colonnes, je voudrais que la largeur des colonnes permet de lire les titres des en-têtes dans son intégralité (sans ...) car parfois j'ai des titre d'en-tête plus long que d'autres colonnes.
Merci de votre appui
Salut,
Oulala, sans passer par des appi cela va être chaud.
Un truc pas très orthodoxe mais bon.
Une petite astuce pour contourner le problème,
- Sur le formulaire tu colles un label avec ces propriétés
- Name = lblTextMeasure
Dans le module du formulaire tu colles ce code
Public Function TextLength(item As Byte) As Long
With Me.lblTextMeasure
.AutoSize = False
.Width = Me.InsideWidth
.Top = 0
.Left = 0
.Visible = False
.BorderStyle = fmBorderStyleSingle
.Font.Name = Me.ListView1.Font
.Font.Bold = Me.ListView1.Font.Bold
.Font.Italic = Me.ListView1.Font.Italic
.Font.Size = Me.ListView1.Font.Size
.Caption = Me.ListView1.ColumnHeaders(item).Text
.AutoSize = True
TextLength = .Width + 10
End With
End Functionet pour l'appel celui-là
Sub ResizeColumnHeaders()
Static ListViewWidth
Dim item As ColumnHeader
For Each item In Me.ListView1.ColumnHeaders
With item
.Width = TextLength(.index)
ListViewWidth = ListViewWidth + .Width
End With
With Me.ListView1
If .Width < ListViewWidth Then .Width = .Width + (ListViewWidth - .Width)
End With
Next item
End SubCi-dessous un formulaire pour faire un essais à importer dans un classeur (dans le VBE/Fichier/Importer le fichier)