C# Redimensionnement Automatique de Formulaire à DataGridView taille
J'ai un Formulaire et un DataGridView. - Je remplir le DataGridView au moment de l'exécution, donc je veux savoir comment puis-je redimensionner le Formulaire dynamiquement en fonction de la taille de la DataGridView? Est-il une sorte de propriété ou méthode? Ou dois-je déterminer la taille moi-même et de mettre à jour en conséquence?
Comment avez-vous "déterminer la taille moi-même" s'il vous plaît? J'ai juste besoin de savoir combien de pixels de la DGV "veut". (Je peux mettre des limites raisonnables pour arrêter le formulaire de devenir trop gros.)
OriginalL'auteur akif | 2009-10-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver la largeur réelle par le comte de la largeur des Colonnes.
N'oubliez pas que votre formulaire peut être plus complexe et votre devrait compter d'autres contrôles.
OriginalL'auteur Artru
Normalement contrôles d'adapter leur taille à la taille du contenant de forme. Pour ajuster la taille de votre formulaire à la taille de votre DataGridView, vous ne devez déterminer la taille et de définir la forme de la taille de match, sans oublier de prendre en compte la taille supplémentaire requis par le formulaire de menu de la bande et/ou des barres d'outils, les barres de statut ou d'autres contrôles.
Dans votre cas, il serait probablement préférable de ne pas redimensionner le formulaire pour correspondre à l'affichage de la grille de contrôle. Très probablement, vous aurez beaucoup plus de lignes dans votre grille de point de vue qu'pourrait s'adapter sur votre écran de Windows, et vous ne voulez pas avoir une forme qui s'étend au-dessous de la zone visualisable du bureau. En règle générale, ce type de situation est exactement pourquoi vous voulez avoir un défilement de l'affichage grille - pour afficher plus de données que peut contenir l'écran à la fois.
OriginalL'auteur MusiGenesis
this.Width
redimensionne cette Forme largeur.Bien sûr, vous avez à ajouter des valeurs fixes (par exemple, la marge, le titre du Formulaire hauteur, ecc.).
Avec les tests que j'ai atteint les valeurs de travail pour moi (ne me demandez pas pourquoi...):
OriginalL'auteur T30
Je voudrais aller dans l'autre direction et la taille de la grille à l'écran. (certains utilisateurs peuvent avoir de faibles res)
Set " WindowState la propriété de la forme => agrandie. (facultatif)
Set 'ancre' propriété de la DGV => 'en Haut, en Bas, à Gauche, à Droite'.
OriginalL'auteur JMB
Vous pouvez être en mesure de faire usage de la
PreferredSize
propriété (MSDN PreferredSize entrée). PourDataGridView
contrôles, j'ai trouvé que la largeur et la hauteur préférées étaient d'environ 20 unités de plus que ce que j'attendais. Je suppose que le contrôle pourrait être le calcul de sa taille par défaut de prendre des barres de défilement en compte.Un autre inconvénient que j'ai découvert est que la
PreferredSize
calcul ne sera pas précis immédiatement après l'ajout ou la modification d'éléments dans le tableau. Pour contourner ce problème, j'ai fait un gestionnaire pour l'RowHeadersWidthChanged
événement.Voici ce qui a fonctionné pour moi:
Hmm. Poursuite de l'expérimentation révèle que
PreferredSize
prend également en compte la largeur de la ligne d'en-têtes, même siRowHeadersVisible
est faux. Ressemble à reconstituer la taille de la somme par la main va être plus fiable.OriginalL'auteur amacleod
Vous pouvez définir la Propriété "Hauteur" de l'Auto dans le formulaire après la classification ou à l'aide d'un IDENTIFIANT et cela devrait le faire ,,
Je l'ai juste essayé .. et Il a travaillé
Je suis juste de mettre exactement ce que j'ai fait dans le cas où vous avez perdu .. Ne vous inquiétez pas sur les autres propriétés là-bas pour mon dessin.
OriginalL'auteur Omaralajlan
dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
Espère que cela aide 🙂
OriginalL'auteur Jason Dias
Ensemble
AutoSizeColumnsMode :Fill
dans les Propriétés de la GrilleOriginalL'auteur Anuja