问题
I would like to copy a picturebox to another picturebox, but I do not want them to change with each other.
PictureBox picbox1 = new PictureBox();
PictureBox picbox2 = picbox1;
picbox1.Visible = false; //The problem here is that picbox2.Visible will also become false
I would like to make picbox1
change without changing picbox2
....
How would I be able to do that?
回答1:
Probably the best way to maintain clean code is to create an extension method, also note that your second picturebox is currently not added to controls.
public static class MyExtensions
{
public static PictureBox CreateNewWithAttributes(this PictureBox pb)
{
return new PictureBox { Image = pb.Image, Width = pb.Width };
}
}
Picturebox p2 = p1.CreateNewWithAttributes();
this.Controls.Add(p2);
More can be read on extension methods here
回答2:
use this...
PictureBox p1 = new PictureBox();
PictureBox p2 = new PictureBox();
Bitmap b = new Bitmap(p1.Image);
p2.Image = b;
p1.Visible = false;
来源:https://stackoverflow.com/questions/23153434/copying-variables-from-one-picturebox-to-another-without-making-them-change-with