IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Redimensionner les colonnes d'une listview


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut Redimensionner les colonnes d'une listview
    Comment redimensionner les colonnes d'une listview automatiquement en fonction du contenu ? Comme quand on double-clique entre deux colonnes d'un tableau Excel quoi.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    listview.columnheaders(x).width = objAnyForm.textwidth("contenu")

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Alors la partie gauche j'ai compris mais le objAnyForm.textwidth("contenu") je capte pas trop...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    tu prends une de tes forms, celle sur laquelle est placée le listview par exemple, et tu fais form.textwidth("ton texte")

    ça va te renvoyer la taille du texte (text = texte, width = largeur) dans la bonne unité.

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Ha ouais ok d'ac mais alors il prend ma feuille comme référence pour la police c'est ça ? Donc ma feuille doit avoir la même police aue ma LisfView ? Le pb c'est que dans ma ListView j'ai certains éléments en gras, et j'ai beau mettre la police de ma feuille en gras ça a pas l'air de prendre en compte. En fait ça redimensionne bien quand c'est pas en gras mais si y'a un truc en gras ça redimensionne un chouia pas assez. Tu vois ce que je veux dire ?

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    En fait j'ai utilisé cette fonction sans en comprendre toutes les subtilités (c'est mal je sais). est-ce aue qn voit où je pourrais dire d'ajouter un peu à chaque colonne après le redimensionnement automatique (oui, j'ai décidé de pas me casser la tête)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Public Sub AdjustColListView(lvwListView As ListView, frmAppel As Form)
    ' Cette procédure ajuste automatiquement la taille des colonnes d'un
    ' contrôle ListView (mode détail) à leur contenu.
    Dim lgFor As Long
    ' Parcours de toutes les colonnes
    For lgFor = 0 To lvwListView.ColumnHeaders.Count - 1
        ' Ajuste la largeur de la colonne à son contenu
        Call SendMessage(lvwListView.hwnd, LVM_SETCOLUMNWIDTH, lgFor, LVSCW_AUTOSIZE)
        ' Vérifie que le titre la colonne est toujours
        ' visible complètement, sinon, augmente sa taille.
        If lvwListView.ColumnHeaders(lgFor + 1).Width < _
            (frmAppel.TextWidth(lvwListView.ColumnHeaders(lgFor + 1).Text) + 180) Then
                lvwListView.ColumnHeaders(lgFor + 1).Width = _
                frmAppel.TextWidth(lvwListView.ColumnHeaders(lgFor + 1).Text) + 180
        End If
    Next lgFor
    End Sub

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    utilise ça :

    with lvwListView.ColumnHeaders

    [code de la fonction]

    end with

    ça sera plus clair ...
    Ou même mieux, passe par des variables intermédiaires :/
    Tu verras tu comprendras toi même ...

    Par contre textwidth ne gère pas la police, il se contente de gérer l'unité.
    En effet une form peut être en pixels, en twips ...

    Donc il faut toi même ajouter un % en fonction de ta mise en forme.

Discussions similaires

  1. Trier les colonnes d'une ListView
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 19h26
  2. Empêcher le redimensionnement des colonnes d'une ListView
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 19h25
  3. Réponses: 3
    Dernier message: 28/10/2010, 10h58
  4. Remplir les colonnes d'une listview
    Par Mathew77 dans le forum Windows Forms
    Réponses: 22
    Dernier message: 18/06/2009, 12h33
  5. [VBA] Trier les colonnes d'une listview
    Par alncool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/09/2005, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo