C# 在form class下实例化类的对象

C# 在form class下实例化类的对象,c#,winforms,C#,Winforms,我不熟悉windows窗体。我试图实例化一个公共类的对象,并在按下按钮1时调用方法drawBoard()。方法drawBoard(),我想通过该方法设置pictureBox2的属性。但是代码没有起作用 public partial class Form1 : Form { public Form1() { InitializeComponent();

我不熟悉windows窗体。我试图实例化一个公共类的对象,并在按下按钮1时调用方法
drawBoard()
。方法
drawBoard()
,我想通过该方法设置pictureBox2的属性。但是代码没有起作用

  public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();                                                                   
        }

        public class gameBoard :Form1
        {
            public void drawBoard()
            {
                pictureBox2.ImageLocation = @"E:\My Data\DoCx\CS\3rd Sem\OOP\proj\images\a.png";
                pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;                      
            }            
        }

        private void button1_Click(object sender, EventArgs e)
        {             
            gameBoard a = new gameBoard();
            a.drawBoard();               
        }      
}
还试图通过其他两种方式实现这一点:

 public partial class Form1 : Form
    {
 public Form1()
        {
            InitializeComponent();

            pictureBox2.ImageLocation = @"E:\My Data\DoCx\CS\3rd Sem\OOP\proj\images\a.png";
            pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
            pictureBox2.BackColor = Color.Transparent;                               
        }    
 }


两者都起作用了。代码运行时直接加载图像。当第二次按下按钮1时也是如此。我想知道在用户定义类的方法中定义pictureBox属性时如何调用它们

如果仔细观察,您的
gameBoard
被定义为
Form1
中的嵌套类,并且它也继承自
Form
控件,这是没有意义的。您可能希望在类的外部定义类(可能在单独的文件中)


如果仔细观察,您的
gameBoard
被定义为
Form1
中的嵌套类,并且它也继承自
Form
控件,这是没有意义的。您可能希望在类的外部定义类(可能在单独的文件中)


您的内部类gameBoard对名为pictureBox2的变量一无所知。它看不到这是容器类中定义的内容。调用pictureBox2时将其传递给drawBoard方法内部类gameBoard对名为pictureBox2的变量一无所知。它看不到这是容器类中定义的内容。调用pictureBox2时将其传递给drawBoard方法
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();         
        }

        private void button1_Click(object sender, EventArgs e)
        {            
            pictureBox2.ImageLocation = @"E:\My Data\DoCx\CS\3rd Sem\OOP\proj\images\a.png";
            pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;   
        }
    }
    public class gameBoard
    {
        private PictureBox _box;
        public gameBoard(PictureBox box)
        {
            _box = box;
        }
        public void drawBoard()
        {
            _box.ImageLocation = @"E:\My Data\DoCx\CS\3rd Sem\OOP\proj\images\a.png";
            _box.SizeMode = PictureBoxSizeMode.Zoom;                      
        }            
    }