2

次のコードがあります

   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;            


            }

        }
    }

フォームにピクチャーボックスがあり、クラスの宇宙船からピクチャーボックスにアクセスしたいのですが、アクセスできません。これを行う方法?

4

2 に答える 2

1

[編集済み]次の方法でアクセスできます。

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

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

こちらをご覧ください

于 2013-03-29T10:10:28.323 に答える
0

パブリック フィールドを unsing するのではなく、パブリック プロパティ From1.TheImage を作成して、画像を PictureBox に設定します。

これにより、チェックを実装したり、必要に応じてクロス スレッド セキュリティを実装したり、SpaceShip クラスを変更せずに PictureBox を別のものと交換したりできます。

この投稿を読んでください: SO パブリック フィールド/プロパティを取得し、フィールドをパブリックにするリスクについて考えてください。

    public partial class Form1 : Form
    {

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

        public Form1()
        {
            InitializeComponent();
        }
    }
于 2013-03-29T10:15:09.023 に答える