将变量从一个图片框复制到另一个图片框而不会相互更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将变量从一个图片框复制到另一个图片框而不会相互更改相关的知识,希望对你有一定的参考价值。

我想将一个图片框复制到另一个图片框,但我不希望他们互相改变。

PictureBox picbox1 = new PictureBox();
PictureBox picbox2 = picbox1;

picbox1.Visible = false; //The problem here is that picbox2.Visible will also become false

我想在不改变picbox1的情况下改变picbox2 ....

我怎么能这样做?

答案

维护干净代码的最佳方法可能是创建扩展方法,还要注意您的第二个图片框当前未添加到控件中。

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

关于扩展方法here可以阅读更多内容

另一答案

用这个...

PictureBox p1 = new PictureBox();
PictureBox p2 = new PictureBox();
Bitmap b = new Bitmap(p1.Image);
p2.Image = b;
p1.Visible = false;

以上是关于将变量从一个图片框复制到另一个图片框而不会相互更改的主要内容,如果未能解决你的问题,请参考以下文章

图片不会在图片框中更改,vb.net

如何用PS从一张图片上截取一个矩形区域到另一张图片上

MFC中,如何将CBitmap中的图片复制到另一CBitmap的一块区域中,即如何读取一个CBit

C# 从一个图片框拖放到另一个图片框

匹配一个变量后,仅将一个变量从一个 R data.table 复制到另一个

以另一种形式将文本发送到文本框而不创建新窗口