2013-03-29 91 views
1

訪問表單元素我有下面的代碼如何從另一個類

namespace Spaceship_Invaders 
    { 
     public partial class Form1 : Form 
     { 
      public Form1() 
      { 
       InitializeComponent(); 
       Image myImage = Image.FromFile("image/Untitled.png"); 
       pictureBox1.Image = myImage; 
      } 

      public class spaceship { 
       Image myimage = Image.FromFile("image/Untitled6.png"); 
       Form1 myform = new Form1(); 
       myform.pictureBox1.Image = myimage;    


      } 

     } 
    } 

我在形式的圖片框,我想訪問從類飛船PictureBox的,但我不能訪問它。這個怎麼做?

+1

後前一個問題,請做你的功課。這是[oop]中的一個基本問題(http://en.wikipedia.org/wiki/Object-oriented_programming)。 –

回答

1

將帖子您可以訪問這種方式:

public class spaceship 
{ 
    Image myimage = Image.FromFile("image/Untitled6.png"); 
    Form1 myform = new Form1(); 

    spaceship() 
    { 
     myform.pictureBox1.Image = myimage;    
    } 
} 

Have a look here

+0

仍然無法訪問它 – asdfkjasdfjk

+0

謝謝,它現在完美。我可以問你爲什麼需要飛船()來訪問picturebox嗎?爲什麼我不能直接從宇宙飛船課程訪問它? – asdfkjasdfjk

+0

你可以。 'spaceship()'是名爲** Constructor **的'spaceship'類的特殊方法。在類體中,只能聲明類成員(也可以初始化它們)。爲了設置它們的值,你應該使用方法。 –

0

不是unsing公共領域建立一個公共屬性From1.TheImage將圖像設置爲圖片框。

這允許你實現檢查,如果需要的話跨線程安全並且在不改變你的SpaceShip類的情況下交換PictureBox和別的東西。

閱讀本帖子:SO public fields/properties瞭解製作領域公開的風險。

public partial class Form1 : Form 
    { 

     public Image MyImage 
     { 
      get { return pictureBox1.Image; } 
      set { 
        //do some checks if neccessary 
        pictureBox1.Image = value; 
       } 
     } 

     public Form1() 
     { 
      InitializeComponent(); 
     } 
    } 
+0

你能告訴我如何使用財產? – asdfkjasdfjk

+0

有很多關於C#的文檔。 但我會舉一個簡短的例子。 – wonko79