如何从另一个类访问表单元素

时间:2013-03-29 10:09:45

标签: c# winforms oop

我有以下代码

   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;            


            }

        }
    }

我在表格中有一个图片框,我想从班级飞船上访问图片框,但我无法访问它。怎么做?

2 个答案:

答案 0 :(得分:1)

[已编辑] 您可以通过以下方式访问它:

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

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

Have a look here

答案 1 :(得分:0)

而不是取消unsing公共字段而不是创建一个公共属性From1.TheImage来将图像设置为PictureBox。

这允许您在必要时实现检查,跨线程安全性,并在不更改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();
        }
    }
相关问题