如何从其他方法访问PictureBox

本文关键字:访问 PictureBox 方法 其他 | 更新日期: 2023-09-27 17:58:42

为了使我的问题尽可能简短,这是我的代码。我把我的错误写下来。

public partial class VH : Form
{
    public VH()
    {
        InitializeComponent();
        //I can reach the pictureBox1 from here, but that's not what I want.
    }
    public static List<PictureBox> listPB;
    public static bool mV()
    {
        bool Test = true;
        listPB = new List<PictureBox>();
        listPB.Add(pictureBox1);  // <--- ERROR: An object reference is required for the non-static field, method, or property '...pictureBox1'
        return Test;
    }

我知道我必须以某种方式使PictureBox静态或可用,但我不知道如何做到。

如何从其他方法访问PictureBox

我猜picturebox1是您在设计器中添加的VH控件。

现在对代码来说,"static"意味着函数、变量或其他可以标记为static的东西不绑定到类的实例。

因此,目前从另一个类调用VH.listPB或VH.mV()是绝对有效的,因此您会得到错误。picturebox1不是静态的,它需要VH的实例化,但mV()可以在没有VH的底层实例化的情况下调用。

    public bool mV()
    {
        bool Test = true;
        listPB = new List<PictureBox>();
        listPB.Add(pictureBox1);
        return Test;
    }

如果没有静态,代码是有效的,尽管不是很有用。