161 votes

Panel.Dock Fill en ignorant tout autre paramètre Panel.Dock

Si vous créez un panneau sur un formulaire et que vous le définissez sur Dock = Top, déposez un autre panneau et définissez son Dock = Remplir, il peut remplir le formulaire en entier en ignorant le premier panneau. Changer l'ordre de tabulation ne fait rien.

353voto

JacquesB Points 19878

D'accueil mise en page dépend de l' ordre de la fratrie des contrôles. Ancré contrôles de ne prendre que la mise en page de la précédente quai frères et sœurs en compte. D'où le contrôle à Quai=Remplissage doit être le dernier de la fratrie de l'ordre, si vous voulez prendre l'autre quai des contrôles en compte, et pas seulement être chevauché par eux.

Cela peut être source de confusion car le frère d'ordre n'est pas nécessairement le même que l'ordre visuel, et le frère de l'ordre n'est pas toujours évident à partir de la vue de conception.

La structure du Document de la fenêtre (Affichage -> Autres Windows -> structure du Document) donne un arbre utile-vue sur le contrôle de la hiérarchie et de l'ordre, et vous permet de modifier le frère de l'ordre des contrôles.

Vous pouvez également modifier frère de commande directement dans le concepteur de menu contextuel -> Mettre à l'avant / à l'arrière-plan, ce qui déplace le contrôle pour être le premier ou le dernier de la fratrie. Ces menus peuvent être un peu à confusion car l'effet réel dépend du modèle de mise en page.

Avec fixe positionné contrôles, la position 2D est indépendant de la fratrie de l'ordre, mais quand les contrôles sont superposées, le contrôle le plus tôt dans la commande sera "en haut", en cachant une partie de ses frères et sœurs plus tard dans l'ordre. Dans ce contexte, de mettre au premier plan / arrière-plan du sens.

À l'intérieur de flux de table ou de panneaux de disposition, l'ordre de création détermine l'ordre visuel des contrôles. Il n'y a pas de chevauchement des contrôles. Afin de mettre au premier plan/arrière-plan vraiment les moyens de faire en premier ou en dernier dans l'ordre des commandes.

Avec quai de la présentation, de l'amener à l'avant / à l'arrière-plan peut être encore plus de confusion, car elle détermine l'ordre dans lequel l'accueil est calculé, afin de mettre au premier plan sur un fond-quai de contrôle aura lieu le contrôle dans le milieu de la société mère, en prenant tout bord à quai des contrôles en compte.

115voto

Jeff Cuscutis Points 3709

Cliquez avec le bouton droit sur le panneau avec Dock = Remplir, puis cliquez sur "Mettre au premier plan".

Ce contrôle est donc créé en dernier, ce qui prend en compte les paramètres du Dock des autres contrôles du même conteneur.

7voto

John Rudy Points 16436

Une autre option potentiellement plus propre consiste à utiliser le contrôle TableLayout. Configurez une rangée de la hauteur souhaitée pour votre quai supérieur et une autre rangée pour remplir à 100% votre fond. Réglez les deux panneaux à l'intérieur sur Remplir et vous avez terminé.

(TableLayout prend un peu de temps pour s'y habituer.)

1voto

RANONO Points 26

JacquesB avait eu l'idée du document mais la hiérarchie n'a pas résolu mon problème. Mes contrôles n'étaient pas dans un style hiérarchique, ils étaient simplement listés avec le même parent.

J'ai appris que si vous changiez l'ordre, cela corrigera votre apparence.

Les contrôles au bas de la liste chevaucheront les contrôles au-dessus dans la fenêtre Structure du document. Dans votre cas, vous devez vous assurer que le premier panneau se situe en dessous du deuxième, etc.

0voto

John Christman Points 393

Voici un truc qui a fonctionné pour moi ..

Placez l’élément supérieur et amarrez-le.

Placez un séparateur, puis fixez-le en haut, puis désactivez-le (sauf si vous souhaitez redimensionner le haut).

Ensuite, placez l'objet Remplissage et définissez Docking sur Remplir. L'objet restera en dessous du séparateur.

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