Redimensionner les Contrôles de avec les Redimensionner
J'ai lu plusieurs de débordement de pile questions sans trouver une bonne solution à mon problème. Comment puis-je redimensionner mes contrôles à chaque fois que le formulaire est redimensionné? Je voudrais obtenir de plus grandes ou plus petites que la forme devient plus grande ou plus petite.
Dans visual basic c'était assez facile à faire avec le formulaire.Zoom de la propriété (qui n'a pas vraiment besoin de redimensionnement des contrôles bien sûr, mais résolu ce dont j'avais besoin). Ce n'est malheureusement pas disponible en C#, winforms.
Voici quelques autres choses que j'ai essayé sans succès:
private void formMain_Resize(object sender, EventArgs e)
{/*
double scale;
this.scaleWidth = (float)this.Width /(float)this.origWidth;
this.scaleHeight = (float)this.Height /(float)this.origHeight;
if (this.scaleHeight > this.scaleWidth)
{
scale = this.scaleHeight;
}
else
{
scale = this.scaleWidth;
}
foreach (Control control in this.Controls)
{
control.Height = (int)(control.Height * this.scaleHeight);
control.Width = (int)(control.Width * this.scaleWidth);
this.Refresh();
// control.Font = new Font("Verdana", control.Font.SizeInPoints * heightRatio * widthRatio);
}
///////This scaling didnt work for me either
//this.Scale(new SizeF(this.scaleWidth, this.scaleHeight));
//this.Refresh();
*/
}
Si j'ai oublié un actualy de travail échantillon de code sur un autre débordement de pile question que j'aimerais voir, mais celles que j'ai trouvées étaient similaires à celles ci-dessus qui ne sont pas de travail.
J'étais peut-être en abuser et quelqu'un pouvait poster un exemple de code à montrer pour ceux d'entre nous qui ne cessent de demander cette question de savoir comment résoudre le problème.
Aussi, j'ai essayé d'utiliser certains de l'ancre/accueil outils pensant qu'ils pourraient autoriser automatiquement, mais il n'a pas.
OriginalL'auteur Kairan | 2013-02-28
Vous devez vous connecter pour publier un commentaire.
La meilleure option est d'utiliser un
TableLayoutPanel
. MettreTableLayoutPanel
sur le formulaire, définissez laDock
propriétéFill
, créer requis de lignes et de colonnes et de mettre les commandes à l'intérieur des cellules. Bien sûr, vous devez définirDock/Anchor
sur les contrôles à l'intérieur des cellules, de sorte qu'ils répondent aux changements de la taille de la cellule. Dans certains cas, vous pouvez avoir besoin de mettre unPanel
dans une cellule et déplacer les contrôles à l'intérieur, parce que chaque cellule ne peut contenir qu'un seul contrôle. Vous pouvez également le configurerRowSpan
/ColumnSpan
sur les commandes.À l'aide d'un
TableLayoutPanel
, vous avez le contrôle complet sur la façon dont votre cotrols devraient être organisées. Vous pouvez définir dans l'absolu ou en pourcentage de la taille des lignes et des colonnes.OriginalL'auteur Mohammad Dehghan
Utilisation Ancre du contrôle. Il y a une option sur l'ancrage de l'en haut, en bas, à gauche et à droite. Et vous êtes bon pour aller.
Il peut utiliser l'ancre / docks. La question est: veut-il correctement?
J'ai essayé d'ancrage et d'un quai et il semble être la seule à "déplacer" les contrôles autour de la taille, mais pas de réelle redimensionner les contrôles
OriginalL'auteur Freddie Fabregas
Ce que vous essayez de le faire dans votre code pour modifier les tailles des contrôles qui n'est pas la bonne approche. Généralement, la taille des Boutons et des zones de texte ne devrait pas être modifié lorsque vous changez la taille de votre forme, mais ils ont souvent besoin de se déplacer (changer de lieu). Certains contrôles ne besoin de changer de taille en fonction de la ré-forme de taille et de mais dans la plupart des cas d'une seule dimension. La centrale de contrôle qui sont utilisés pour la zone de travail (si vous le développement de l'outil de dessin, par exemple) devraient modifier les tailles de ces deux dimensions. Tout ce que vous pouvez accomplir en définissant correctement Dock et/ou des propriétés de l'Ancre des contrôles.
Tous ces sont également facilement placé dans le panneau des Propriétés lors de l'utilisation de designer.
Mais si ce n'est pas assez pour vous, dans de rares cas, vous aurez très certainement envie de changer seulement l'emplacement de la commande:
OriginalL'auteur Nikola Davidovic
J'ai trouvé une autre solution qui fonctionne bien pour moi, d'apprécier, positif ou négatif, des commentaires sur la solution.
À l'aide de plusieurs Split Conteneurs et de Diviser les Contenants à l'intérieur de Split Conteneurs dans les différentes régions, je suis en mesure de séparer les pièces primaires de la mise en page, et à l'intérieur il y en utilisant d'Amarrage et d'Ancrage, je suis capable d'accomplir exactement ce que je voulais faire - il fonctionne à merveille.
Je tiens à préciser que je suis conscient que certaines personnes en ligne mentionner split conteneurs utiliser beaucoup de ressources.
OriginalL'auteur Kairan
Si vos contrôles dans une zone de groupe, assurez-vous de définir le groupe des boîtes de propriétés à redimensionner. Les contrôles à l'intérieur de la boîte sont contrôlés par la boîte. La taille de la boîte (à moins que c'est à l'intérieur d'une autre boîte) est contrôlé par la forme.
OriginalL'auteur HillbillyBlue