2014-01-21 159 views
0

我通常通過此方法將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); 

回答

2

至少,一個問題是,你需要聲明構造函數接受圖像數組。所以你需要:

public Form2(Bitmap[] ArrayOfPassedDataGoesHere); 

試試看看它是否有效!

注意 - 另一個觀察是你不需要初始化成員變量,直到你在構造函數中。所以,下面的代碼將正常工作(在「窗體2」):

private readonly Bitmap []myForm2Bitmaps; 

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

的「只讀」的關鍵字,您可以初始化在構造函數中的數組,之後不能改變它。這對於不需要更改的變量很有用(這可能是這種情況?)

+0

它的工作!謝謝,我得到了錯誤因爲我做了這個「公共Form2(位圖[] ArrayOfDataToBePassed =新的位圖[大小])」 – julianconcepcion

+0

和你的筆記,這是我這樣做。這只是爲了縮短我的帖子。但無論如何感謝! – julianconcepcion

0

Form2需要在其構造函數中有Bitmap[]以接收數組。

構造函數最好接受Enumerator<Bitmap>,以便確切瞭解傳入數據的存儲方式(也許你會從網上下載,速度相對較慢),然後存儲它,但是適用於你班上的需求。

相關問題