2014-03-29 119 views
-3

我有兩種不同形式的圖像盒。 Form1:firstpicturebox form2:picturebox1 我想將firstpicturebox的圖像傳輸到picturebox1。 因此,任何人都可以幫助並提供相同的解決方案。 在此先感謝。兩種不同形式的圖像盒

回答

0

可以使用窗體2構造

試試這個發送:

Form1中:

private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 form2 = new Form2(pictureBox1.Image); 
     form2.Show(); 
    } 

表2:

public Form2(Image pic1) 
    { 
     InitializeComponent(); 
     pictureBox1.Image = pic1; 
    } 
+0

這裏,我沒有使用form1的firstpicturebox。 – VGI

+0

如何在新的form2()..內訪問firstpicturebox? – VGI

0

你真的問兩個中的問題一個:

1 - 如何獲取一個PictureBox的內容到另一個PictureBox?

2 - 如何從另一個窗體訪問一個窗體的控件等?

問題1是直截了當:pictureBox1.Image = pictureBox2.Image;

回答問題2不難要麼但也有很多方法可以做到這一點,選擇一個可能取決於你想用這兩種形式做什麼。

基本的方法是始終獲取對其他表單的有效引用。

這裏是一個通用的方法:

  • 聲明其它形式的類的全局變量在每個表單中。
  • 讓這些參考指向在正確的時刻
  • 製作您想要訪問的任何控件,屬性等;對於控件,您可以創建一個額外的引用並填充它,也可以去設計器並將其範圍從私有變爲公共。

什麼是正確的時刻?假設Form1將在PROGRAMM的啓動時創建,並創建窗口2通過在Form1一些動作你可以得到參考FORM2在那裏,當你創建並顯示:

form2 = new Form2(this); 
    form2.Show(); 

這可能是點擊一個按鈕,甚至在form1的加載事件。

請注意,我已經在構造函數中提交了對this的引用!這是將引用傳遞給form1到新窗體的一種很好的方法。因此,form2中的構造函數應該如下所示:

public Form2(Form1 form1_) 
{ 
    InitializeComponent(); 
    form1 = form1_; 
} 

最後一步是讓您需要訪問的控件爲公共控件。去設計師。CS文件,並從

private System.Windows.Forms.PictureBox pictureBox1; 

改變聲明

public System.Windows.Forms.PictureBox pictureBox1; 

完成。

或者...

如果你有許多形式,所有需要訪問一個圖片框,你也可以試試這個:在programm.cs聲明靜態全局引用它的文件是這樣的:

static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new Form1()); 
} 

public static PictureBox thePictureBox; 

然後填寫在Form1參考

Program.thePictureBox = pictureBox1; 

現在,你可以參考它在所有其他形式,以及:

myNextPictureBox42.Image = Program.thePictureBox.Image; 
+0

這兩個pictureboxes是不同的形式..我已經讓他們公開。 – VGI

+0

除此之外,你能否提出任何其他方法,因爲我想在這種情況下將多種形式鏈接到一種形式 – VGI

+0

好!所以你所需要的只是至少一個引用另一個表單,就像我解釋的那樣。然後你可以寫在form1中: pictureBox.Image = form2.pictureBox.Image。 當然你的名字是你命名的任何東西;東西meanigfull我建議,不只是1,2,3 .. – TaW