C# 如何在winform中同时显示两个图像

C# 如何在winform中同时显示两个图像,c#,winforms,C#,Winforms,在winforms中,我有两个图片框,一个用于肖像,另一个用于风景。 不要更改文件的大小,或者由于某些原因他们不能同时下载 假设先下载肖像图像,现在我点击更新按钮,它显示肖像图像, 第二张图片下载后,当我点击更新按钮时,它只显示风景图片 我需要两个图像应该显示,下载两个图像后,但在我的情况下,它只显示一个图像(最新下载的图像) 我该怎么办,这是代码 private void DisplayLogos(LogoHeader imageHeader) { if (image

在winforms中,我有两个图片框,一个用于肖像,另一个用于风景。 不要更改文件的大小,或者由于某些原因他们不能同时下载

假设先下载肖像图像,现在我点击更新按钮,它显示肖像图像, 第二张图片下载后,当我点击更新按钮时,它只显示风景图片

我需要两个图像应该显示,下载两个图像后,但在我的情况下,它只显示一个图像(最新下载的图像)

我该怎么办,这是代码

 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;
        }

    }
}
private void DisplayLogos(LogoHeader imageHeader)
{
如果(imageHeader.carId==2)
{
肖像标签。Text=“肖像图像”;
可见=真;
MemoryStream ms=新的MemoryStream(imageHeader.Images.First());
Image=Image.FromStream(毫秒);
位图bmp=新位图(图像);
PictureBox.Image=图像;
PictureBox.Visible=true;
}
else if(imageHeader.carId==1)
{
LandscapeLabel.Text=“景观图像”;
LandscapeLabel.Visible=true;
MemoryStream ms=新的MemoryStream(imageHeader.Images.First());
Landscape PictureBox.Image=Image.FromStream(毫秒);
Landscape PictureBox.Visible=真;
}                   
}
公共类标识头
{
公共LogoHeader(访问au,内部Id)
{
carId=Id;
}
public int carId{get;set;}
公共字节[]映像{get;set;}
公共列表图像
{
得到
{
列表徽标=新列表();
logo.Add(图像);
返回标识;
}
}
}

为了保留无法关闭(或更改)流的图像,只需创建另一个图像即可

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;
    }                   
}

为了保留无法关闭(或更改)流的图像,只需创建另一个图像即可

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;
    }                   
}

谢谢,这里我添加了一个条件,如果CarId==2,那么它是纵向图像,如果横向图像下载它跳过纵向,并且vise Versa谢,这里我添加了一个条件,如果CarId==2,那么它是纵向图像,如果横向图像下载它跳过纵向,并且vise versaDo我遵循任何设计模式,为了工作,为了工作,我遵循任何设计模式