C# 如何创建多个图片框并保存它们?
我想让我的应用程序中的用户在每次单击主picturebox时都能创建picturebox(我想保留picturebox并为用户提供无限的picturebox创建功能) 守则:C# 如何创建多个图片框并保存它们?,c#,picturebox,C#,Picturebox,我想让我的应用程序中的用户在每次单击主picturebox时都能创建picturebox(我想保留picturebox并为用户提供无限的picturebox创建功能) 守则: PictureBox Pic = new PictureBox(); Pic = pictureBox2; Pic.Left = e.X; Pic.Top = e.Y; Pic.Visible = true; 您需要注册到点击pictureBox的事件,并在点击时创建一个新的pirtureBox: this.p
PictureBox Pic = new PictureBox();
Pic = pictureBox2;
Pic.Left = e.X;
Pic.Top = e.Y;
Pic.Visible = true;
您需要注册到点击
pictureBox
的事件,并在点击时创建一个新的pirtureBox
:
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.pictureBox1.Location = new System.Drawing.Point(319, 32);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(100, 50);
this.pictureBox1.TabIndex = 7;
this.pictureBox1.TabStop = false;
// THE IMAGE IS UP TO YOU TO ADD.USE THIS -this.pictureBox1.Image =
this.pictureBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.pictureBox1_MouseClick);
this.Controls.Add(pb);
在pictureBox1\u鼠标单击事件中执行以下操作:
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
PictureBox pb = new System.Windows.Forms.PictureBox();
pb.Location = new System.Drawing.Point(319, 32);// THE LOCATION AND CONTEXT IS UP TO YOU
pb.Name = "pictureBox1";
pb.Size = new System.Drawing.Size(100, 50);
pb.TabIndex = 7;
pb.TabStop = false;
this.Controls.Add(this.pictureBox1);
}
嗯,我在这里补充说,正如rene在评论中所说,如果你使用大图片或大量图片,你可能会很快耗尽内存。在这种情况下,您应该对不再需要的图片执行.Dispose()
,这个问题有五到六个不同的方面,这是在您的应用程序因OOM异常而死亡之前。你不保留图片盒,你保留图像,你用图片盒展示的图像。不要吝啬。卑鄙不是本网站的目的:)。回到问题上来:它实际上不是“无限”,而是动态无界的,或者是一个先验未知数量的PictureBox。因此,您需要了解控件是什么。我已经假设您正在使用Windows窗体。查看相关表单???.designer.cs文件包含的内容。您可以尝试模仿该文件中的魔力。@TonyHopkinson我怀疑在OOM异常应用之前,由于过度使用用户权限,Win32Exception将终止应用程序objects@rene看看这个评论部分变成了什么。事实上,我们是如此聪明,我们只是因为这个问题的笨拙而嘲笑它,并没有使我们或提问者变得更聪明。很明显,提问者想知道:在运行时如何执行可视化设计器在设计时执行的任何“魔术”。提问者使用“无穷大”来表示“一个无限的、未知的、先验的控制数”,这只是一个笨拙的特性。我们自己都有很多特质。这个有点笨拙。它可能来自一个数学模型background@EduardDumitru要点:请不要忘记将新创建的PictureBox实际添加到您认为asker正在考虑的“任意”容器中。可能是表单本身,也可能是某个面板。也可能是处理Picturebox,以防止OP遇到评论员预测的灾难性故障?Picturebox分配非托管资源。如果继续添加,则会耗尽内存和/或句柄。在你的asnwer中有一个关于这一点的警告就足够了,如果不再需要的话,建议将其处理掉。您的代码的最后一行不应该读取this.Controls.Add(pb)代码>?如果您继续添加图像,在某个时候您将耗尽资源,更不用说它将变得真实sloooooooowwwww@rene是的,我有时会有这样的问题,我没有注意到这些小事情。。。我想这取决于图片框,但是正常大小的图片需要占用内存(4gb,对吗?)的数量是非常大的,对吗?