2014-06-10 10 views
5

Ich habe 2 Pictureboxes, die ich parallel updaten möchte.2 Pictureboxen parallel aktualisieren

Für jetzt habe ich dies:

picturebox_1.Refresh(); 
picturebox_2.Refresh(); 

Innerhalb jeder Farbe Veranstaltung, die ich Sachen wie diese haben:

Picturebox 1:

e.Graphics.Clear(System.Drawing.Color.Black);  
e.Graphics.DrawImage(mybitmap1, X, Y); 
e.Graphics.DrawLine(mypen, verticalstart, verticalend); //Draw Vertical 

Picturebox 2:

e.Graphics.Clear(System.Drawing.Color.Black);  
e.Graphics.DrawImage(mybitmap2, X, Y); 
e.Graphics.DrawLine(mypen, verticalstart, verticalend);//Draw Vertical line. 

Gibt es ein EA sy Weg dies zu tun? Ich bin neu in Threading usw.

Vielen Dank!

Antwort

0

Können Sie für beide Bilderrahmen nur den gleichen Paint-Ereignishandler verwenden? Wenn ich zwei Bildfelder in ein Formular einfüge und für beide den unten gezeigten Handler verwende, zeigen beide eine vertikale rote Linie an, die das Feld halbiert.

private void pictureBox_Paint(object sender, PaintEventArgs e) { 
    PictureBox pb = sender as PictureBox; 
    if (pb == null) { 
     return; 
    } 
    Pen p = new Pen(Brushes.Red); 
    e.Graphics.DrawLine(p, new Point(pb.Width/2, 0), new Point(pb.Width/2, pb.Height)); 
} 

edit: wie folgt zusätzliche Beispiel

ich jedes Bitmap mit dem Bildfeld als Schlüssel in einem Wörterbuch speichern würde:

public partial class Form1 : Form { 
    private Dictionary<PictureBox, Bitmap> bitmaps = new Dictionary<PictureBox,Bitmap>(); 
    public Form1() { 
     InitializeComponent(); 
     bitmaps.Add(pictureBox1, mybitmap1); 
     bitmaps.Add(pictureBox2, mybitmap2); 

    } 

    private void pictureBox_Paint(object sender, PaintEventArgs e) { 
     PictureBox pb = sender as PictureBox; 
     if (pb == null) { 
      return; 
     } 
     e.Graphics.Clear(System.Drawing.Color.Black);  
     e.Graphics.DrawImage(bitmaps[pb], X, Y); 
     e.Graphics.DrawLine(mypen, verticalstart, verticalend);//Draw Vertical line. 
    } 
} 
+0

bearbeitet ich meinen Beitrag. Es zeichnet tatsächlich 2 verschiedene Bilder .. – Matimont

+0

@Matimont - siehe überarbeitete Antwort für Weg, um separate Bitmaps zu verfolgen – WarrenG

+0

Ich könnte das gleiche Ereignis für die 2 Bildfelder verwenden, aber das Unentschieden wäre nicht parallel bin ich richtig? – Matimont