L'ajout de la case à datagridview en-tête de colonne, ne pas aligner correctement
Im essayant d'ajouter une case à cocher à un datagridview en-tête de colonne, j'ai trouvé un code en ligne pour les aider, mais il n'est pas en alignant correctement et je ne suis pas vraiment sûr de savoir comment le résoudre.
Ci-dessous une image du problème et le code, toute aide serait grandement appréciée!
P. S. je pense qu'il pourrait être quelque chose à voir avec les propriétés, mais j'ai joué un peu avec eux, mais pas réussi.
Private checkboxHeader231 As CheckBox
Private Sub show_chkBox()
Dim rect As Rectangle = DataGridView1.GetCellDisplayRectangle(columnIndexOfCheckBox, -1, True)
' set checkbox header to center of header cell. +1 pixel to position
rect.Y = 3
rect.X = rect.Location.X + 8 + (rect.Width / 4)
checkboxHeader231 = New CheckBox()
With checkboxHeader231
.BackColor = Color.Transparent
End With
checkboxHeader231.Name = "checkboxHeader1"
checkboxHeader231.Size = New Size(18, 18)
checkboxHeader231.Location = rect.Location
AddHandler checkboxHeader231.CheckedChanged, AddressOf checkboxHeader231_CheckedChanged
DataGridView1.Controls.Add(checkboxHeader231)
End Sub
Private Sub checkboxHeader231_CheckedChanged(sender As System.Object, e As System.EventArgs)
Dim headerBox As CheckBox = DirectCast(DataGridView1.Controls.Find("checkboxHeader1", True)(0), CheckBox)
For Each row As DataGridViewRow In DataGridView1.Rows
row.Cells(columnIndexOfCheckBox).Value = headerBox.Checked
Next
End Sub
- Qu'est-ce que ce commentaire "" définir la case d'en-tête au centre de la cellule d'en-tête. +1 pixel à la position @
- J'ai oublié de l'onu-supprimer le morceau de code qui était là avant que j'ai téléchargé, l'un sec, je vais faire le tri!
Vous devez vous connecter pour publier un commentaire.
C'est ma première entrée, mais je pense que c'est ce que vous cherchez. Je l'ai testé et il a travaillé sur mon datagrid. Vous avez été en utilisant la largeur du rectangle, vous en aurez besoin pour la largeur de la colonne de la place. J'ai défini l'en-tête de colonne à 4, mais vous devez remplacer les 4 avec votre colonne que vous souhaitez utiliser je l'ai mis dans deux manières, l'une avec un quatre boucle, l'autre juste comme des lignes simples. Dites-moi si cela a fonctionné pour vous: