Réorganisation des contrôles dans un panneau de disposition de flux
J'ai de la difficulté à l'aide de la flowlayoutPanel en C# winform application. Ce que je n'ai est une disposition de flux panneau qui dispose de 3 sections.
Section #1 est un ensemble de 2 contrôles .. deux déroulante des contrôles, ils sont toujours dans le même ordre, toujours visible dans toutes les instances
Section #2 est un ensemble de 5 différents contrôles ... basé sur une série de facteurs, de la 1 à la 5 contrôles est rendu visible, tous les autres ont le Visible se trouve dans la valeur false
Section #3 est un ensemble de 3 contrôles .. comme la Section #1, ils sont toujours dans le même ordre et toujours visible.
Donc ce que cela se résume à la Section #2 est variable, les autres sont statiques.
Le problème vient de la Section n ° 2 ... lorsque je change la visibilité de tout contrôle, ils semblent très bien (I. E. ... Section 1 Section 2 Section 3) ... SAUF quand j'ai mis le contrôle zone de liste déroulante pour être Visible .... dans ce cas, et SEULEMENT dans ce cas .., l'ordre devient (Section 1 de la Section 3 de la Section 2) ... je ne peux pas comprendre ce que serait la cause de la commande de la désynchronisation des en cas.
Qu'en gros, je fais au début de ma méthode est de définir TOUS les contrôles Visible = false ... puis j'ai mis l'Article 1 Visible = vrai ... ensuite une boucle sur les conditions de l'Article 2 et de définir les mesures de contrôle appropriées Visible = true, et enfin définir la Section 3 contrôles Visible = true.
Quelqu'un a une expérience à la disposition de flux de commande du panneau de commande? Je ne peux pas comprendre ce qui se passe pour la zone de liste déroulante.
source d'informationauteur Scott Vercuski
Vous devez vous connecter pour publier un commentaire.
Pourrait-il être plus facile d'abandonner un autre flowlayoutpanel dans la section 2, puis déposez votre section 2 le contrôle sur qui? De cette façon, les commandes visibles dans votre panneau supérieur ne changent jamais et vous n'aurez pas à vous soucier de la commande.
À L'Intérieur De FlowLayoutPanel.Les contrôles est une méthode de la fonction appelée SetChildIndex(Contrôle c, int index) qui permet de définir un objet à un index spécifique.
Depuis FlowLayoutPanel utilise un contrôle d'indices pour déterminer l'ordre de les dessiner, vous pouvez définir ce quel que soit le contrôle de l'index que vous êtes désireux de swap avec, et il bosse que les contrôles de l'indice par un, et tous l'un après l'.
Ici est extrait de mon blog de réorganisation PictureBoxes dans un flowlayoutpanel
//ajouter FlowLayoutPanel sur un Winform - nommé flowLayoutPanel1
Vous pouvez réorganiser les contrôles sur flowpanel, la modification de la propriété parent de contrôles et de réaffectation de la propriété parent de l'ordre que vous avez besoin.
Essayer cette solution générique où vous pouvez trier vous des contrôles selon une propriété dans le contrôle de l'utilisateur.
SetChildIndex
ne rétablit pas l'ordre des champs dans le flowlayout panneau. Donc, lorsque nous procédons àFlowLayoutPanel.GetNextControl(q, true)
la sortie n'est pas correct.Pour la commande de base de la commande, de la façon la plus simple de contrôler l'ordre de contrôles dans le flowlayoutPanel est de définir la flowlayoutPanel propriété TabStop de vrai. Régler les commandes de la propriété tabstop de Vrai et de définir l'ordre de tabulation à l'ordre dans lequel vous voulez que les commandes apparaissent.