12
votes

DataGridView: Supprimer l'espace inutilisé?

Je me demandais s'il est possible de supprimer l'espace inutilisé (l'espace gris) du contrôle DataGridView Control dans C #. Je dois faire le DataGridView Afficher la table blanche uniquement.

Toute suggestion?

note : Cet article contenait à l'origine une image externe qui n'est plus valide


0 commentaires

8 Réponses :


3
votes

Je pense que vous voulez:

myDataGrid.AutoSizeColumnsMode = Fill


4 commentaires

Cela ne se débarrassera pas de tout l'espace gris, juste l'espace à droite des colonnes. Vous devrez écrire un gestionnaire pour l'événement de redimensionnement pour former les lignes visibles pour remplir la grille si vous voulez ce comportement.


Avec votre édition, vous êtes incorrect en supposant qu'il existe une valeur de remplissage pour AutosizerowsMode.


Msdn.microsoft.com/en-us/Library/ ...


@Sid Farkus Je viens de voir la propriété AutosizerowsMode et supposait que cela a fait les mêmes choses que la propriété AutosizecOlumnsMode. Je n'avais jamais vraiment essayé l'autostizerowsMode. Désolé pour ça.



5
votes

Définissez la propriété RowsheaderVisible sur FALSE, vous pouvez le faire à partir du concepteur, dans la catégorie apparition ou à partir du code: xxx

Pour retirer la ligne d'indicateur sur le côté gauche, vous pouvez essayer de définir le fichier autosizeColumnsmode pour remplir, mais vous aurez toujours la partie inférieure grisotée. De l'absence de lignes.

au lieu de dimensionner vos cellules pour remplir votre grille, vous pouvez redimensionner votre grille afin de vous intégrer autour de vos cellules. Il s'agissait ou non d'une approche acceptable dépendra de votre intention.

Je veux dire, il est possible que si sa couleur qui vous dérange, le backcolor en blanc ferait le tour.


2 commentaires

Alors ... il n'y a pas de solution parfaite ??


Merci, tu as sauvé ma journée .. !!



1
votes
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

2 commentaires

ERREUR: Impossible de convertir implicitement type 'System.Windows.Forms.DataGridViewAutosizEcOcolumnMode' vers 'System.Windows.Forms.DataGridViewAutosizececolumnSmode'. Une conversion explicite existe (manquez-vous un casting?)


Vous pouvez ajouter une colonne 's' après la colonne de votre système.windows.Forms.DataGridViewAutosizEcOlumNMode et le problème seront résolus :)



6
votes

Je n'ai trouvé aucun moyen simple d'éliminer l'espace "inutilisé" ou gris (arrière-plan). Cependant, une solution efficace pour moi était de cacher les frontières du dataGridView et de changer sa couleur d'arrière-plan en arrière-plan du contrôle environnant. Essentiellement, la perception est qu'il n'y a pas d'espace plus inutilisé.

Voici un extrait de pseudocode: xxx

J'ai lu quelque part que le paramètre Autosize n'est pas applicable, Cependant, cela a changé de choses pour moi. Cet exemple suggère que la commande environnante a une couleur d'arrière-plan de SystemColors.Controllightlight, mais cela peut être modifié comme requis.

Veuillez voter cela si cela vous a aidé.


1 commentaires

Upvoted, cela a aidé ... c'était le plus proche que je reçois jusqu'à présent



8
votes

Parfois (surtout avec Winforms), le meilleur moyen est de pirater:

dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control;


1 commentaires

Cela fonctionne, mais vous avez alors la frontière. Une idée de la façon de supprimer cela?



0
votes

Eh bien, j'ai travaillé pour trouver une réponse pour cela avant, mais si vous souhaitez imiter un fichier de données vide, la réponse longue est de créer des objets " blanc " et utilisez des graphiques à remplir la grille entière sur une méthode de la suralimentation sur l'arrière-plan.


0 commentaires

1
votes

aller au designer:

1) Modifier la couleur de fond de l'arrière-plan de DataGridView identique à la couleur de la forme

2) Définissez DataGridView "Borderstyle" à Aucun


0 commentaires

-2
votes

J'utilise ce code pour et cela fonctionne pour mon si vous n'ajoutez pas de colonne de bouton ou d'image, je le prends à partir d'un site mais je ne me souviens pas d'où: XXX


1 commentaires

OP a demandé une solution en C # pendant que votre réponse est VB.