2009-03-25 6 views
2

J'ai des difficultés à afficher plusieurs images (jusqu'à 5) superposées, mais en mesure de les voir toutes. Seulement le premier et le dernier apparaîtront. Je les montre de bas en haut, définissez leurs emplacements correctement et en utilisant la fonction BringToFront(). Quelqu'un at-il une solution (le cas échéant)? Merci pour l'aide!PictureBoxes et Zorder [.NET]

Répondre

2

Vous ne savez pas exactement quel est le problème; Le code suivant ajoute 5 PictureBox es empilés à un formulaire et les configure afin qu'ils soient tous visibles.

private void AddStackedPictureBoxes() 
{ 
    for (int i = 0; i < 5; i++) 
    { 
     PictureBox pb = new PictureBox(); 

     pb.BackColor = Color.FromArgb(i * 50, i * 50, i * 50); 
     pb.BorderStyle = BorderStyle.FixedSingle; 

     pb.Location = new Point(i * 10, i * 10); 
     pb.Size = new Size((5 - i) * 20, (5 - i) * 20); 

     Controls.Add(pb); 

     pb.BringToFront(); 
    } 
} 

Peut-être que cela vous donnera un aperçu de la raison pour laquelle vous avez des problèmes.

Par exemple, si vous appelez BringToFront() avant que le contrôle ne soit ajouté au formulaire, il n'aura aucun effet.

+0

merci, le problème était que je les ai ajouté * après * en utilisant BringToFront() ... n'a pas réalisé jusqu'à maintenant (mauvaise habitude de VS Form Desinger - définir toutes les propriétés, puis ajouter à panneau/formulaire, etc.) –

+0

Vous devez également vous assurer que vos images sont ajoutées au même contrôle. Je devenais fou en me demandant pourquoi une image ajoutée au formulaire principal ne passerait pas sous une image ajoutée à un panneau. Oups! – ashes999

0

Veillez à définir une couleur d'arrière-plan transparente sur chacun d'entre eux. Comme le dit Daniel, BringToFront() ne fonctionne que si le contrôle est déjà sur un formulaire.

+0

bien je ne sais pas pourquoi je devrais le faire (avec une couleur transparente). Je dessine des images sans régions/zones transparentes. –

+0

Eh bien, je suppose que la raison pour laquelle vous les empilez est que vous pouvez avoir un effet en couches. –