【发布时间】:2016-09-23 08:16:21
【问题描述】:
首先要做的事情:我对编程很陌生,我正在努力学习 C# 语言
我的目标:拥有一个改变pictureBox1中图片的方法。
问题:我收到错误消息,告诉我非静态字段需要对象引用。
这是我的班级的 sn-p 方法应该去哪里。
private class Execute
{
private void valueChecker(char value)
{
for (int i = 0; i <= charLenght; i++)
{
if (value != CharArray[i])
{
i++;
}
else if (value == CharArray[i])
{
CorrectLetter(value);
svalue = true;
}
}
if (svalue == true)
{
/* This is where the command is happening.
But I get error message : "An object reference is required for the non-static field, method or property."
*/
pictureBox1.Image = photos[x];
x++;
}
}
}
我也尝试在代码的其他地方创建新的类和方法,并从 if 语句中调用它,但我没有让它工作。
如果svalue == true,我需要更改pictureBox1中的图片
关于我到底在做什么的更多信息: 我正在制作一个刽子手游戏作为练习,如果在答案中找不到输入字母,我想更新 pictureBox1 中的图像。
图片存储在我称为照片[] 的数组中。
【问题讨论】:
-
如果这正是代码,它没有意义。仅当您尝试在静态方法中访问非静态成员时才会发生该错误。
-
实际上,如果您将
Execute放在 具有该图片框的表单类中,您也会收到该错误。 -
pictureBox1.Image这是从哪里来的?它是您班级Execute的财产吗?您是否这样称呼您的方法:Execute.valueChecker('q')? -
你的类需要一个对 PictureBox 的引用。你可以在创建类的实例后添加一个属性并设置它,甚至可以将它直接传递给构造函数..