Le panneau.Dock de Remplissage en ignorant d'autres Panneau.Quai de réglage
Si vous créez un groupe sur un formulaire et de le régler à Quai=en Haut et en déposer un autre groupe et l'ensemble de son Dock=Remplissage, il peut remplir le formulaire en entier, en ignorant le premier panneau. Modification de l'ordre de tabulation ne fait rien.
Vous devez vous connecter pour publier un commentaire.
D'accueil mise en page dépend de la ordre de la fratrie des contrôles. Les contrôles sont à quai "bouton", de sorte que le dernier contrôle dans la collection est ancrée en premier. Un quai de contrôle ne prendre que la mise en page de précédemment quai frères et sœurs en compte. D'où le contrôle à Quai=Remplissage doit être le premier (en haut) le frère de l'ordre, si vous voulez prendre l'autre quai des contrôles en compte. Si ce n'est pas le premier contrôle, plus tôt de contrôle se chevauchent.
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 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 de contexte -> Porter à 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.
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.
designer.cs
Clic droit sur le panneau avec Dock=Remplissage et cliquez sur 'Mettre à l'Avant".
Ce qui rend ce contrôle sera créé en dernier, qui prend en compte les paramètres du Dock sur d'autres contrôles dans le même conteneur.
Un autre, potentiellement plus propre option est d'utiliser le TableLayout de contrôle. Définir une ligne de la hauteur souhaitée pour votre haut de quai, et une ligne de remplissage de 100% pour votre fond. Jeu de deux panneaux à l'intérieur de Remplissage, et vous avez terminé.
(TableLayout ne prendra un certain temps pour s'y habituer, si.)
J'ai eu le même problème et j'ai réussi à le résoudre.
Si vous avez un conteneur avec
DockStyle.Fill
les autres devraient aussi avoir DockStyle mais le Haut ou ce que vous voulez.L'important, c'est d'ajouter le contrôle avec
DockStyle.Fill
d'abord dans les Contrôles que les autres.Exemple:
mais si nous mettons cb premier
JacquesB eu l'idée avec la structure du document, mais la hiérarchie n'a pas de résoudre mon problème.
Mes contrôles n'étaient pas dans un style hiérarchique, ils ont juste le même parent.
J'ai appris que si vous avez modifié l'ordre qu'il va corriger la façon dont vous voulez qu'il regarde.
Les contrôles sur le bas de la liste se chevauchent les contrôles sur le haut de la fenêtre structure du Document. Dans votre cas, vous assurez-vous que le premier panneau est en dessous de la deuxième panneau et ainsi de suite.
Si vous ne voulez pas changer l'ordre des éléments à l'intérieur du code, vous pouvez utiliser la méthode Conteneur.Les contrôles.SetChildIndex() avec le Récipient par exemple, la Forme, Panneau, etc. vous souhaitez faire ajouter vos commandes.
Exemple:
Voici une astuce qui a fonctionné pour moi..
Place l'élément du Haut et de l'ancrer en haut.
Place un Séparateur, et aussi de l'ancrer en haut, puis il désactivé (sauf si vous voulez redimensionner le haut).
Puis Placez le Remplissage de l'objet et de définir d'Accueil à Remplir. L'objet restera en dessous du séparateur.
Je suis tombé sur le même problème. Le mien était avec l'ajout de nouvelles/contrôles personnalisés ci-dessous le menu de la bande au moment de l'exécution. Le problème est le contrôle lorsqu'il est connecté, a décidé de dock à partir du haut de l'écran et en ignorant totalement le menu dépouiller entièrement, très ennuyeux si vous me demandez.
Comme cela devait être fait de façon dynamique avec le code et non pas lors de la conception de mode c'est devenu extrêmement frustrant. La façon la plus simple que j'ai trouvé est de créer un panneau lors de la conception de mode et dock ci-dessous le menu de la console. À partir de là, vous pouvez juste ajouter/supprimer les contrôles à l'écran tactile et vous pouvez l'ancrer au moment de l'exécution. Pas besoin de jouer avec toutes vos commandes sur votre formulaire qui n'ont pas vraiment besoin de changer, trop de travail en fonction de ce que vous avez vraiment besoin de le faire.
Je sais que c'est un vieux post, mais j'ai découvert quelque chose d'utile. Pour régler frère de contrôle de la commande par programmation pour créer dynamiquement des contrôle(s), vous pouvez faire quelque chose comme:
Dans mon cas, je l'ai fait pour déplacer un Socle/panneau de Remplissage pour être le premier dans mon formulaire, de sorte qu'il ne serait pas de chevauchement avec un autre quai contrôle à Quai/Top (un menu de la console).