8 votes

Existe-t-il un moyen de réduire la taille des cellules des DataGridViewCheckBox ?

Comme décrit dans cette question il semble que la hauteur minimale d'une ligne dans un DataGridView (WinForm et non WPF) soit de 17 si vous souhaitez afficher des cases à cocher dans une cellule DataGridViewCheckBoxCell. Si elle est plus petite, la case à cocher disparaît tout simplement !

Existe-t-il un moyen de placer une petite case à cocher dans une cellule DataGridView ?

4voto

neminem Points 2030

En effet, vous devrez dessiner le contrôle vous-même. Le bon côté des choses, c'est qu'il n'est pas si difficile de dessiner le contrôle soi-même. Le présent est un bon exemple de dessin de votre propre case à cocher (nous utilisons quelque chose d'assez similaire dans notre propre code).

Simplement, au lieu de le surcharger pour qu'il ait l'air désactivé, vous voulez le surcharger pour que la boîte soit plus petite... Je ne vois aucun moyen d'appeler CheckBoxRenderer.DrawCheckBox avec une taille, mais rien ne devrait vous empêcher de dessiner dans votre propre objet graphique, de le rétrécir vous-même, puis de dessiner l'image que vous venez de rétrécir.

3voto

Si vous utilisez maintenant .NET 4.0, vous pouvez utiliser la fonction DataGridView.RowTemplate pour régler la hauteur minimale.

Par exemple,

DataGridViewRow row = this.dataGridView1.RowTemplate;
row.DefaultCellStyle.BackColor = Color.Bisque;
row.Height = 35;
row.MinimumHeight = 20;

Toutefois, comme le montrent les cette réponse MSDN la hauteur minimale d'une ligne comportant des cases à cocher est de 17 pixels . Il semble qu'il n'y ait aucun moyen de contourner ce problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X