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.

War es hilfreich?

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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top