2009-04-20 8 views
2

Le projet sur lequel je travaille actuellement a deux datagridviews qui sont destinés à comparer deux versions de données similaires (même nombre et nom de colonnes). Je voudrais redimensionner toutes les colonnes afin qu'ils correspondent à deux critères:Deux DataGridViews; alignement des colonnes

1) Taille automatique pour ajuster les données (qui est facile)

2) Ainsi, les colonnes sont alignés de telle sorte que pour toute COL colonne, gridA[COL].Width = Max(gridA[COL].Width , gridB[COL].Width), et la même chose pour gridB[COL].Width

le problème que je rencontre est, quand vous faites un redimensionnement automatique, la propriété Width ne vous montre pas la largeur RÉEL (il affiche la largeur avant l'auto-resize , J'imagine).

Répondre

0

Pour le redimensionnement automatique, il existe la propriété FillWeight.

Si vous définissez les deux gridviews 'AutoSizeColumnsMode sur Fill, vous pouvez lire FillWeight sur le premier et l'appliquer à la seconde. Cependant, vous devrez probablement le faire pour toutes les colonnes.

+0

Oui. Permettez-moi de clarifier - je peux auto-taille bien; cette partie a été ajoutée pour être complète. Mais si l'AutoSizeMode qui affecte la colonne n'est pas "None", la largeur affichée n'est pas la largeur "réelle". Je dois être en mesure de faire quelque chose comme définir les largeurs des cols sur la deuxième grille à ceux de la première (qui sont autosized) –

1

J'ai trouvé un autre moyen de redimensionner les colonnes pour plus de contrôle. Je ne peux pas croire que je l'ai manqué la première fois.

Vous pouvez utiliser la méthode DataGridViewColumn.GetPreferredWidth(...) pour obtenir la largeur de numérotation automatique.

+0

Je ne peux pas croire que j'ai raté celui-là aussi. – ChrisF

Questions connexes