Halten Sie Windows Forms Picturebox in der Mitte des TreeView
-
06-07-2019 - |
Frage
Ich habe eine Winform mit 2 treeviews bekommt. meine linke Treeview mit Daten aus einem Adserver wird geladen, die auf eine Schaltfläche, indem Sie geladen wird. Dies löst meinen Background, die meine Daten abruft und meinen Baum aufbauen.
Jetzt, während dies zu tun ich Deaktivieren der Treeview-Steuerelement und ein picturebox mit einem animierten Gif auf sie zeigt. Also, wenn mein Background beendet ist aktiviere ich meine treeview zurück und meine picturebox verbergen.
Also, was soll ich tun, ist, dass die picturebox im Zentrum der Strukturansichts bleibt. beiden treeviews sind auf einen gesplitteten Behälter. vielleicht muss ich die Grenzen dieser Platten bekommen? Also, wenn die Größe der Form ändert, meine picturebox bleibt schön in der Mitte des treeview.
Lösung
Erstellen Sie eine Platte auf die gleiche Größe und den Standort Ihres treeview. Fügen Sie diese treeview in der Platte und setzen Sie ihn auf DockStyle.Fill . Fügen Sie Ihr Bild an der Platte und stellen Sie den Anker auf AnchorStyles.None .
this.panel1.Controls.Add(treeView2);
this.panel1.Controls.Add(pictureBox1);
this.treeView2.Dock = DockStyle.Fill;
this.pictureBox1.Anchor = AnchorStyles.None;
Der Anker Stil AnchorStyles.None wird Ihre Bild-Box in der Mitte der Platte halten. Stellen Sie Ihr Bildfeld vor Ihrer Baumansicht. Einmal Ihre Verarbeitung ist einfach über das Bildfeld auszuzublenden.
Andere Tipps
Nicht klar, wie Sie Ihre Form einrichten, aber Sie wollen entweder die Logik in Form bringen Ereignis oder das TreeView Resize-Ereignis Resize.
Wenn entweder die Größe verändert wird, legen Sie das Bild an der Stelle = halben Weg über die TreeView, minus der Hälfte der widht Ihres Bildes, wiederholen Sie für die Höhe.
OnFormResize()
{
Point ul = new Point((Form.ClientRectangle.Width - pictureBox1.Width) / 2,
(Form.ClientRectangle.Height - pictureBox1.Height) / 2);
pictureBox1.Location = ul;
}