Die Neuanordnung der Bedienelemente in ein flow-layout-panel
Ich habe Probleme mit dem flowlayoutPanel in einem C# - winform-Anwendung. Was ich im wesentlichen ist ein flow-layout-panel, das 3-Sektionen.
Abschnitt #1 ist ein Satz von 2 steuert .. zwei dropdown-Steuerelemente, Sie sind immer in der gleichen Reihenfolge, immer sichtbar in allen Instanzen
Abschnitt #2 ist ein Satz von 5 verschiedenen Steuerungen ... auf der Grundlage einer Reihe von Faktoren ab, 1 von den 5 Kontrollen sichtbar gemacht, alle anderen haben die Visible-Eigenschaft auf false festgelegt
Abschnitt #3 ist ein Satz von 3 Kontrollen .. wie im Abschnitt #1 sind Sie immer in der gleichen Reihenfolge und immer sichtbar.
Also, was dies läuft darauf hinaus, dass Abschnitt #2 ist variabel, die anderen sind statisch.
Das problem kommt mit Abschnitt #2 ... wenn ich das ändern der Sichtbarkeit eines der Steuerelemente, die Sie scheinen in Ordnung (I. E. ... Abschnitt 1 und Abschnitt 2 und Abschnitt 3) ... AUßER wenn ich die combobox-Steuerelement, um Sichtbar zu werden .... in diesem Fall, und NUR in diesem Fall .. die Bestellung wird (Abschnitt 1 und Abschnitt 3 und Abschnitt 2) ... ich kann nicht herausfinden, was bewirken würde, dass die Bestellung zu out-of-sync nur in diesem Fall.
Was ich im Grunde tun, am Anfang meiner Methode ist, legen Sie ALLE Steuerelemente auf Visible = false ... dann setze ich den Abschnitt 1 Visible = true ... dann wird die Schleife Durchlaufen, die die Voraussetzungen von Abschnitt 2 und legen Sie die entsprechenden Steuerelemente Sichtbar = true und schließlich Abschnitt 3-Kontrollen Visible = true.
Hat jemand Erfahrung mit der flow-layout-panel-Steuerelement der Bestellung? Ich kann nicht herausfinden, was passiert ist für die ComboBox.
InformationsquelleAutor Scott Vercuski | 2009-01-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte es leichter fallen eine andere flowlayoutpanel in Abschnitt 2, dann lassen Sie Ihre Abschnitt 2-Steuerungen in das? So, die sichtbaren Steuerelemente in Ihrem top-panel ändern sich nie, und Sie müssen nicht sorgen zu machen über die Bestellung.
InformationsquelleAutor Rob Prouse
Innen
FlowLayoutPanel.Controls
ist eine Methode, die Funktion, die aufgerufen wirdSetChildIndex(Control c, int index)
mit dem Sie ein Objekt an einem bestimmten index.Seit FlowLayoutPanel Steuerung verwendet die Indizes, um festzustellen, welche, um Sie zu zeichnen, können Sie einstellen, welches control den index, Sie werden wollen, tauschen mit, und es wird die Unebenheit, die Kontrollen index bis um eins, und jeden danach.
Hier ist das snippet von meinem blog der Neuordnung PictureBox hinzu, die in ein FlowLayoutPanel.
Fügen Sie ein FlowLayoutPanel auf eine WinForm-namens
flowLayoutPanel1
:InformationsquelleAutor Gary Kindel
Können Sie neu anordnen von Steuerelementen auf flowpanel, ändern der parent-Eigenschaft der Steuerelemente und Neuzuweisung der parent-Eigenschaft mit dem Auftrag, den Sie benötigen.
InformationsquelleAutor Oscar Ollé
Versuchen, diese generische Lösung, bei der Sie Sortieren können Sie die Steuerelemente nach einer Eigenschaft in der Kontrolle durch die Nutzer.
InformationsquelleAutor Lancelot
SetChildIndex
nicht zurückgesetzt, die Reihenfolge der Steuerelemente in der flowlayout panel. So führen wirFlowLayoutPanel.GetNextControl(q, true)
die Ausgabe ist nicht korrekt.InformationsquelleAutor Raj Sharma
Für die grundlegende Kontrolle der Bestellung, am einfachsten durch Kontrolle der Reihenfolge der Steuerelemente in das flowlayoutPanel ist, um das flowlayoutPanel TabStop-Eigenschaft auf true. Die Kontrollen eingestellt tabstop-Eigenschaft auf True und legen Sie die tab-Reihenfolge der Reihenfolge, in der Sie möchten, dass die Steuerelemente angezeigt werden.
InformationsquelleAutor Chris M.