Question

J'ai un winform avec 2 treeviews. mon arborescence de gauche est chargée avec les données d'un serveur ads chargé en cliquant sur un bouton. Cela déclenche mon travail en arrière-plan qui récupère mes données et construit mon arbre.

Désormais, je désactive le contrôle de l'arborescence et affiche une boîte à photos avec un gif animé. Ainsi, lorsque mon travail d’information est terminé, je réactive mon arborescence et masque ma boîte à images.

Ce que je veux faire, c'est que la boîte à images reste au centre de l'arborescence. les deux arborescences sont sur un conteneur divisé. alors peut-être que je dois obtenir les frontières de ces panneaux? Ainsi, lorsque la taille du formulaire change, ma boîte à images reste bien au centre de l'arborescence.

Était-ce utile?

La solution

Créez un panneau de la même taille et du même emplacement que votre arborescence. Ajoutez cet arbre dans le panneau et définissez-le sur DockStyle.Fill . Ajoutez votre image au panneau et définissez l'ancre sur AnchorStyles.None .

this.panel1.Controls.Add(treeView2);
this.panel1.Controls.Add(pictureBox1);

this.treeView2.Dock = DockStyle.Fill;
this.pictureBox1.Anchor = AnchorStyles.None;

Le style d'ancrage AnchorStyles.None permet de conserver votre bloc d'image au centre du panneau. Définissez votre boîte à images devant votre vue arborescente. Une fois votre traitement terminé, il vous suffit de masquer la boîte à photos.

Autres conseils

La configuration de votre formulaire n'est pas claire, mais vous souhaitez soit placer la logique dans l'événement de redimensionnement du formulaire, soit dans l'événement de redimensionnement TreeView.

Lorsque l’un des deux est redimensionné, placez l’image à l’emplacement = à mi-chemin dans l’affichage TreeView, moins la moitié de la largeur de l’image, répétez cette opération pour la hauteur.

OnFormResize()
{
  Point ul = new Point((Form.ClientRectangle.Width - pictureBox1.Width) / 2,
      (Form.ClientRectangle.Height - pictureBox1.Height) / 2);
  pictureBox1.Location = ul;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top