2017-08-16 11 views
1

winformsで私は肖像画用の写真ボックスと風景用の2つの写真ボックスを持っています。 winformで同時に2つの画像を表示するには

は、人物画像が最初にダウンロードした場合、今、私は2番目の画像は、ときに私がダウンロードした後、それがポートレート画像、 を見せていた、更新ボタンをクリックしましょう、ファイルのサイズや、それらが同時にダウンロードされていないいくつかの理由のために行います風景画像のみを表示していた更新ボタンをクリックします。

両方の画像をダウンロードした後に表示する必要がありますが、私の場合は1つの画像(最新のダウンロード画像)しか表示されません。

私は何をすればいいですか、ここにコードがあります。

private void DisplayLogos(LogoHeader imageHeader) 
    { 
     if (imageHeader.carId == 2) 
     { 
      PortraitLabel.Text = "Portrait Image"; 
      PortraitLabel.Visible = true; 
      MemoryStream ms = new MemoryStream(imageHeader.Images.First()); 
      Image image = Image.FromStream(ms); 
      Bitmap bmp = new Bitmap(image); 
      PortraitPictureBox.Image = image; 
      PortraitPictureBox.Visible = true; 
     } 
     else if (imageHeader.carId == 1) 
     { 
      LandscapeLabel.Text = "Landscape Image "; 
      LandscapeLabel.Visible = true; 
      MemoryStream ms = new MemoryStream(imageHeader.Images.First()); 
      LandscapePictureBox.Image = Image.FromStream(ms); 
      LandscapePictureBox.Visible = true; 
     }     
    } 

public class LogoHeader 
{ 
    public LogoHeader(Access au, int Id) 
    { 
     carId = Id; 
    } 
    public int carId { get; set; } 
    public byte[] image{ get; set; } 

    public List<byte[]> Images 
    { 
     get 
     { 
      List<byte[]> logos = new List<byte[]>(); 
      logos.Add(image);    
      return logos; 
     } 

    } 
} 
+0

私は –

答えて

0

イメージを保持するために、ストリームを閉じる(または変更する)ことはできません。別のストリームを作成するだけです。

private void DisplayLogos(LogoHeader imageHeader) 
{ 
    if (imageHeader.carId == 2) 
    { 
     PortraitLabel.Text = "Portrait Image"; 
     PortraitLabel.Visible = true; 
     MemoryStream ms1 = new MemoryStream(imageHeader.Images.First()); 
     Image image = Image.FromStream(ms1); 
     Bitmap bmp = new Bitmap(image); 
     PortraitPictureBox.Image = image; 
     PortraitPictureBox.Visible = true; 
    } 
    else if (imageHeader.carId == 1) 
    { 
     LandscapeLabel.Text = "Landscape Image "; 
     LandscapeLabel.Visible = true; 
     MemoryStream ms2 = new MemoryStream(imageHeader.Images.First()); 
     LandscapePictureBox.Image = Image.FromStream(ms2); 
     LandscapePictureBox.Visible = true; 
    }     
} 
+0

感謝を動作させるためには、ここで私は風景画像は肖像画、およびその逆を飛ばし、それをダウンロードした場合であればCarId == 2が、それは、ポートレート画像であるという条件を追加し、任意のデザインパターンに従ってください。 –

関連する問題