为了让我的问题尽可能短,这是我的代码。我写下了我收到的错误。
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
静态或可用,但我不知道如何。
答案 0 :(得分:3)
我想那个picturebox1是你在设计师中添加的VH控件。
现在你的代码&#34;静态&#34;表示函数,变量或其他任何可以标记为static的函数都不会绑定到类的实例。
所以目前来自另一个类的VH.listPB或VH.mV()调用将是绝对有效的,因此你会得到错误。 picturebox1不是静态的,它需要VH的实例,但可以在没有VH的基础实例的情况下调用mV()。
public bool mV()
{
bool Test = true;
listPB = new List<PictureBox>();
listPB.Add(pictureBox1);
return Test;
}
没有静态代码虽然不是很有用,但代码有效。