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.NET Discussion :

Modifier hauteur ligne DGV [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut Modifier hauteur ligne DGV
    Bonjour à tous,

    Une question bête a laquelle je ne trouve pas de réponse...
    J'aimerai fixer la hauteur de toutes les lignes de ma datagridview à disons 200.

    J'ai utiliser pour cela Datagridview1.RowTemplate.Height = 200 aucun résultat...

    J'ai testé également DataGridView1.RowTemplate.MinimumHeight = 200 qui n'a rien donné.

    Le problème vient surement d'une propriété qu'il faut passer à false ou inversement.. mais laquelle?? J'ai mis AllowUserToResizeRow à True et j'ai tenté (de manière assez aléatoire) de modifier d'autre propriété les unes après les autres, mais rien ne change.

    Pour info, je ne souhaite pas utiliser l'auto redimensionnement, je veux toujours avoir 200 de hauteur de ligne quoi qu'il arrive.

    Merci d'avance pour votre aide!

  2. #2
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Bonjour,

    Mets AutoSizeRowsMode = False et il faut faire le set de ton Datagridview1.RowTemplate.Height avant le BindingSource de ton DGV, sinon tu vas devoir le ré-appliquer à chaque ligne...
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    J'ai donc mis la propriété AutoResizeRowsMode = false
    Puis remplis ma DGV :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    myDataGridView19.RowCount = liste_ID_articleA.Count
     
            myDataGridView19.AutoSizeRowsMode = False
     
            myDataGridView19.RowTemplate.Height = 200
     
     
            For i = 0 To liste_ID_articleA.Count - 1
                myDataGridView19.Rows(i).Cells(1).Value = liste_ID_articleA(i)
                myDataGridView19.Rows(i).Cells(4).Value = liste_ID_articleB(i)
                myDataGridView19.Rows(i).Cells(6).Value = Math.Round(liste_pourcentage_ressemblance(i), 4)
            Next
    De cette manière, mais pas de changement.

  4. #4
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Ennuyeux, on peut voir les properties que tu as définies dans ton DGV ? (Peut-être qu'un œil plus expert en verra une qui pourrait bloquer ...)


    En tout tout tout dernier recours on peut boucler les rows et redéfinir la taille Row.Height, mais c'est pas du tout optimisé car après-remplissage, et si ton dgv a 100.000 lignes à redessiner je te laisse imaginer...


    EDIT : Au temps pour moi, ce n'est pas .AutoSizeRowsMode = False mais .AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    Alors, pour la partie code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    myDataGridView19.ColumnCount = 7
     
            myDataGridView19.Columns(0).Width = 540
            myDataGridView19.Columns(1).Width = 80
            myDataGridView19.Columns(2).Width = 60
            myDataGridView19.Columns(3).Width = 540
            myDataGridView19.Columns(4).Width = 80
            myDataGridView19.Columns(5).Width = 60
            myDataGridView19.Columns(6).Width = 110
     
     
            myDataGridView19.Columns(0).Name = "Article n°1"
            myDataGridView19.Columns(1).Name = "ID"
            myDataGridView19.Columns(2).Name = "Delete"
            myDataGridView19.Columns(3).Name = "Article n°2"
            myDataGridView19.Columns(4).Name = "ID"
            myDataGridView19.Columns(5).Name = "Delete"
            myDataGridView19.Columns(6).Name = "% similarity"
     
            myDataGridView19.RowHeadersWidth = 80
     
            myDataGridView19.RowCount = liste_ID_articleA.Count
     
            myDataGridView19.AutoSizeRowsMode = False
     
            myDataGridView19.RowTemplate.Height = 200
     
     
            For i = 0 To liste_ID_articleA.Count - 1
                myDataGridView19.Rows(i).Cells(0).Value = liste_abstract_articleA(i)
                myDataGridView19.Rows(i).Cells(1).Value = liste_ID_articleA(i)
                myDataGridView19.Rows(i).Cells(3).Value = liste_abstract_articleB(i)
                myDataGridView19.Rows(i).Cells(4).Value = liste_ID_articleB(i)
                myDataGridView19.Rows(i).Cells(6).Value = Math.Round(liste_pourcentage_ressemblance(i), 4)
            Next

    Et sinon dans les propriétés, j'ai juste passer AllowUserToAddRow = false et AllowUserToDeleteRow = false. Et j'ai changer le backgroundcolor mais ça devrait pas faire de mal^^. Le reste des propriétés a conserver ces valeurs par défaut.

    Au temps pour moi, ce n'est pas .AutoSizeRowsMode = False mais .AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None
    Oui je m'en suis rendu compte en regardant les valeurs proposés dans les propriétés. Mais même comme ça ce ne change rien

    Quelle sac de nœud ces propriétés de la DGV quand même ^^

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    En tout tout tout dernier recours on peut boucler les rows et redéfinir la taille Row.Height, mais c'est pas du tout optimisé car après-remplissage, et si ton dgv a 100.000 lignes à redessiner je te laisse imaginer...
    A la limite je suis preneur de cette solution, car j'aurai au max 300 lignes dans cette DGV. Je vais voir si c'est pas trop long, merci pour l'info!

    EDIT : Alors ça fonctionne, ce n'est pas long du tout (pour 100 lignes je n'arrive pas a voir la différence de temps que cela prend). Par contre je viens de me rendre compte que ça ne faisait pas du tout ce que je voulais faire a la base ^^
    Je voulais afficher des textes d'environ 150 mots dans mes cellules, d'où l'agrandissement de la cellule dans sa hauteur, mais ça ne rajoute que de l'espace blanc en haut et en bas de la ligne de texte en fait :/

    Je retourne à ces satanées propriétés.. Merci en tout cas


    RE-EDIT : Pour ceux que ça interesse, la propriété pour afficher du texte en multi-ligne dans une DGV c'est DataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True

  7. #7
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Sujet résolu, mais pour la précision (et histoire de dire que j'ai pas débuggé pour rien haha)

    Si tu affectes dans ce sens là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            myDataGridView19.RowCount = 20
            myDataGridView19.RowTemplate.Height = 80
    Le .Height n'est pas impacté, mais si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            myDataGridView19.RowTemplate.Height = 80
            myDataGridView19.RowCount = 20
    C'est bon, après en détail quand à savoir pourquoi, on peut faire des suppositions sur le RowCount qui virtualise en mémoire le nombre de ligne avec la Height définie à l'instant T du RowTemplate (donc valeur par défaut), et qu'ensuite, même si le template est modifié, les lignes étant déjà -plus ou moins- faites, il se remet pas à jour.

    Voilà voilà
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  8. #8
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 101
    Points : 80
    Points
    80
    Par défaut
    Intéressant en effet, comme quoi il faut faire gaffe a l'ordre à tous moment.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier une ligne dans stdout
    Par getupa dans le forum Général Python
    Réponses: 2
    Dernier message: 21/12/2005, 18h18
  2. [D7] comment ne pas modifier des lignes d'1 TStringGrid
    Par raoulmania dans le forum Composants VCL
    Réponses: 5
    Dernier message: 15/12/2005, 07h28
  3. Réponses: 2
    Dernier message: 10/05/2005, 18h15
  4. Modifier une ligne d'un fichier
    Par jula dans le forum Linux
    Réponses: 4
    Dernier message: 08/04/2005, 17h24
  5. Comment faire pour modifier une ligne dans une DBGrid?
    Par Nico62 dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2005, 12h24

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