2014-04-18 1 views
0

Я хотел бы скопировать картинку в другой кадр, но я не хочу, чтобы они менялись друг с другом.Копирование переменных из одного картинного окна в другое без изменения их друг друга

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

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

Я хотел бы сделать picbox1 изменения без изменения picbox2 ....

Как я был бы в состоянии сделать это?

+0

Ты после [глубокой копии] (http://stackoverflow.com/questions/129389/how-do-you-do-a-deep -copy-an-object-in-net-c-specific), или вы пытаетесь выяснить, как сделать картинку с изображением того же изображения, что и другое? .. – Sayse

+0

сначала вам нужно понять OOPS, а затем ссылочные и значения типов и то как работают кучи и стеки. –

+0

Если вы можете сказать, в чем основная проблема, которую вы пытаетесь решить, нам лучше помочь, а не помогать клонировать изображение. –

ответ

1

Вероятно, лучший способ сохранить чистый код, чтобы создать метод расширения, также обратите внимание, что ваш второй PictureBox в настоящее время не добавляется к элементам управления.

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

+0

благодарит за вашу помощь! –

0

использование этого ...

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

Проблема заключалась в том, что я хочу больше, чем одно свойство, но я думаю, что просто скопируйте их один за другим, затем ... –

+0

@AssemYounis Если вы скопируете все свойства, вы будете использовать отражение, иначе копирование вручную просто отлично. –

+0

ОК, поэтому эта ссылка может вам помочь .. http://www.codeproject.com/Articles/12976/How-to-Clone-Serialize-Copy-Paste-a-Windows-Forms –

Смежные вопросы