graphicsDrawImage导致大红色X的错误

我有一个位图图像的集合,我正在循环,并将它们全部写入一个新的位图。 基本上,我正在采取松散的位图集合,并将它们全部写入一个位图,以便它们可以看作一个图像。

当我从集合中的一个位图调用dc.DrawImage到新的位图上时,我的winform在窗体中显示一个大红色的X. 当我设置一个PictureBox.Image到新绘制的位图,我得到一个大红色的X.

由于某种原因,我无法find任何地方的错误。 我无法finddebugging错误。

现在,如果我只是将PictureBox.Image设置为图像集合中的图像之一,则无需循环并绘制到新的位图上,一切正常。

为了使一切都变得简单,我只能使用集合中的一个位图,并将一个位图绘制到新的位图中。 所以我知道我只有一个位图来工作,然后我可以添加其他的。

在下面的图像是什么forms看起来像如果我只是在集合中设置图像的picturebox.image。 第二个图像是在循环绘制集合中的位图到另一个位图之后显示的错误。

下面的代码是需要的工作,但抛出一个错误。

注意我在哪里设置PictureBox.Image的属性,如下所示:this.picBx.Image = schedule; 这会导致错误。

但是,如果我像这样设置picturebox.image:

this.picBx.Image = schedules [0] .Door; 它工作得很好。

DoorSchedules schedules = GetDoorDrawing(elev, projInfo.ProjectName); int prevWidth = 0; // using (Bitmap schedule = new Bitmap(schedules.Width + 50, schedules.Height + 50)) { using (Graphics dc = Graphics.FromImage(schedule)) { using (Pen pen = new Pen(LINE_COLOR)) { pen.Width = 4; pen.Color = Color.FromArgb(50, LINE_COLOR.R, LINE_COLOR.G, LINE_COLOR.B); // for (byte i = 0; i < schedules.Count; i++) { if (i > 0) { dc.DrawLine(pen, prevWidth - 25, 0, prevWidth - 25, schedule.Height); }; dc.DrawImage(schedules[i].Door, prevWidth, 0); prevWidth += schedules[i].Door.Width; }; }; }; this.picBx.Image = schedule; this.picBx.BackColor = BACK_COLOR; this.Size = new System.Drawing.Size(schedule.Width, schedule.Height); }; 

在这里输入图像说明

您在使用语句中定义了Bitmap schedule

当使用块结束时,位图被处理。