Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将位图数组从一个窗体传递到另一个窗体?_C#_Arrays_Bitmap - Fatal编程技术网

C# 如何将位图数组从一个窗体传递到另一个窗体?

C# 如何将位图数组从一个窗体传递到另一个窗体?,c#,arrays,bitmap,C#,Arrays,Bitmap,我通常通过这种方法将位图图像从Form1传递到Form2 //Code in Form1 Bitmap DataToBePassed; Form2 frm2 = new Form2(DataToBePassed); frm2.Show(); this.Hide(); //Then this on Form2 //Inside Public Form2() Public Form2(Bitmap PassedDataGoesHere); 但是现在,我有一个位

我通常通过这种方法将位图图像从Form1传递到Form2

//Code in Form1
 Bitmap DataToBePassed;
 Form2 frm2 = new Form2(DataToBePassed);
        frm2.Show();
        this.Hide();

//Then this on Form2
//Inside Public Form2()
Public Form2(Bitmap PassedDataGoesHere);
但是现在,我有一个位图数组,我用同样的方法,它不起作用。我试着这样做:

Bitmap[] ArrayOfDataToBePassed = new Bitmap[size];
Form2 frm2 = new Form2(ArrayOfDataToBePassed);
        frm2.Show();
        this.Hide();

//In form2
Bitmap[] ArrayOfDataToBePassedGoesHere = new Bitmap[size];
Public Form2(Bitmap ArrayOfPassedDataGoesHere);

至少,一个问题是您需要声明构造函数以接受图像数组。因此,您需要:

public Form2(Bitmap[] ArrayOfPassedDataGoesHere);
试试看它是否有效

注意-另一个观察结果是,在进入构造函数之前,不需要初始化成员变量。因此,以下代码可以正常工作(在“Form2”中):


“readonly”关键字允许您在构造函数中初始化数组,并且在此之后不更改它。这对于不需要更改的变量很有用(这里可能是这种情况?

Form2
需要在其构造函数中包含
Bitmap[]
才能接收数组


构造器最好接受
枚举器
,这样就不知道传入数据是如何存储的(也许你会从网上下载,速度相对较慢),然后根据类的需要进行存储。

它工作了!谢谢,我弄错了,因为我把这张图做成了“Public Form2(Bitmap[]ArrayOfDataToBePassed=new Bitmap[size]),请注意,我就是这样做的。只是为了缩短我的帖子。不过还是要谢谢你!
private readonly Bitmap []myForm2Bitmaps;

public Form2(Bitmap[] passedImages) {
   myForm2Bitmaps = passedImages;
   // any other init code here
}