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

本文关键字:访问表 表单 元素 访问 另一个 | 更新日期: 2023-09-27 18:06:32

我有以下代码

   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;            

            }
        }
    }

我有一个图片框的形式,我想从类飞船访问图片框,但我不能访问它。如何做到这一点?

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

[EDITED]你可以这样访问:

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

看这里

与其使用公共字段,不如创建一个公共属性From1。

将图像设置为图片框。

这允许你实现检查,如果需要的话跨线程安全,并且在不改变太空船类的情况下用其他东西交换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();
        }
    }