DataGridview largeur des colonnes

Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour à tous

tout d'abord phénomène
j'ai deux projets identiques
quand je lance le premier j'affiche un
datagridview chaque colonne à la largeur
du columnheader
quand je lance l'autre projet (la meme sub
que le premier projet) le datagridview n'est
pas le meme

 Private Sub test()
        Dim recordset As OleDbDataReader
        Dim iter As Integer
        Dim titles(3) As String
        Dim margin As Integer
        Dim widthgrid As Integer
        Dim heightgrid As Integer
        Dim drawfont As New Font("arial", 14, FontStyle.Bold, GraphicsUnit.Pixel)
        titles(0) = "toto"
        titles(1) = "Points toto"
        titles(2) = "vitesse toto"
        titles(3) = "record toto"

        DataGridresult.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken
        DataGridresult.Font = drawfont
        recordset = query1
        DataGridresult.AutoResizeColumns()
       DataGridresult.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
        DataGridresult.EnableHeadersVisualStyles = False
        DataGridresult.ColumnHeadersDefaultCellStyle.BackColor = Color.PowderBlue
        widthgrid = 50
        heightgrid = 0
        DataGridresult.Columns.Clear()
        DataGridresult.Rows.Clear()
        For iter = 1 To recordset.VisibleFieldCount - 1
            DataGridresult.Columns.Add(recordset.GetName(iter), titles(iter - 1))
            DataGridresult.Columns(iter - 1).AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
            DataGridresult.Columns(iter - 1).DefaultCellStyle.BackColor = Color.Linen
            widthgrid += DataGridresult.Columns(iter - 1).Width
        Next


quand je lance avec le debugger et verifie la
valeur de DataGridresult.Columns(iter - 1).Width


ça reste toujour la meme valeur comme si que
 DataGridresult.Columns(iter - 1).AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader
n'avait aucun effet

dans l'autre projet ça marche
le meme code


merci

2 réponses


Bonjour,

ça n'explique pas le pourquoi, mais si tu fais:
DataGridresult.Columns(iter - 1).Width = DataGridresult.Columns(0).Width
'Au lieu de 
DataGridresult.Columns(iter - 1).AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader

ça donne quoi?

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
52
Bonjour

j'ai trouvé la raison le code était bon
le datagrid est dans un panel
il faut mettre
panel1.visible = true
ça marche mais ça crée une autre erreur