2010-03-29 5 views
1

classe OriginalImage: Formulaire { privé Image image; private PictureBox pb; J'appelle cela créer l'objet OriginalImage sous une autre forme en cliquant sur le bouton, mais l'image n'est pas dessiner? Où est le problème?Problème C# WinForms avec dessin image

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     var oi = new OriginalImage(); 
     oi.Show(); 
    } 
} 
+0

Toute raison pour laquelle il vous implémentez de formulaire? et pas seulement créer une image et l'ajouter à la forme actuelle? –

+0

On dirait qu'il veut montrer l'image ... sous une nouvelle forme. –

Répondre

2

Vous créez un PictureBox et l'ajouter à vos commandes, mais vous ne jamais utiliser réellement (vous dessinez l'image manuellement en cas Paint). Pourquoi? Ce contrôle est susceptible d'obscurcir la zone de dessin du formulaire, car tout contrôle s'ajoute à celui que vous dessinez dans l'événement Paint.

De plus, vous obtenez l'objet Graphics en appelant CreateGraphics sur la PictureBox plutôt que le Form lui-même. Ceci est faux, car l'événement Paint de PictureBox déclenchera après le code, effaçant tout ce que vous avez dessiné.

Je recommande de changer votre code OriginalForm à ce qui suit:

class OriginalImage: Form 
{ 
    private Image image; 
    private PictureBox pb; 

    public OriginalImage() 
    { 
     pb = new PictureBox(); 
     pb.SizeMode = PictureBoxSizeMode.StretchImage; 

     pb.Dock = DockStyle.Fill; // this will make the PictureBox occupy the 
            // whole form 

     Controls.Add(pb); 

     image = Image.FromFile(@"Image/original.jpg"); 

     this.ClientSize = new Size(image.Width, image.Height); // this allows you to 
                   // size the form while 
                   // accounting for the 
                   // border 

     this.Text = "Original image"; 

     pb.Image = image; // use this instead of drawing it yourself. 
    } 
} 
Questions connexes