在我班上不能使用pictureBox.Image

时间:2014-09-14 02:12:59

标签: c# visual-studio-2012

我正在制作游戏,我有一个名为gameScripts的课程。内部gameScripts是名为public void的{​​{1}}方法。调用此方法时,该方法使用2个paintSquare语句,根据哪一个为真,方形图像将相应更改。

问题是,当我尝试使用if将图片更改为十字时,pictureBox.Image = Image.FromFile("cross.png");会在其下方显示一条红线,并显示错误消息" pictureBox.Image& #34;

我已尝试在我的命名空间中包含System.Drawing和System.Windows.Forms,但我仍然遇到此错误。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

消息'ClassXXX' does not contain a definition for 'YYY' and no extension method 'YYY' accepting a first argument of type 'ClassXXX' could be found (are you missing a using directive or an assembly reference?)实际上就是它的含义。最有可能在你的代码中有这样的结构:

myObject.YYY

但该类(myObject所在的实例)没有名称为YYY的成员。

例如:

class MyClass {
     public string MyField;
}

...

var myObj = new MyClass();
myObj.MyField = "OK";
myObj.NotMyField = "FAIL"; // compiler will complain at this line

但是,编译器通过查看变量类型来获取可用属性和方法的列表。这可能会导致对象本身具有成员的情况,但编译器无法看到它,因为变量是使用不同的类型定义的。

考虑以下代码片段:

class MyExtClass : MyClass {
     public string MyNewField;
}

...

MyClass myObj = new MyExtClass();
myObj.MyField = "OK";
myObj.MyNewField = "FAIL"; // compiler will complain at this line
                           // because MyClass does not have it

因此,在您的代码中,pictureBox似乎被定义为System.Windows.Forms.Control。因此,即使它实际上是System.Windows.Forms.PictureBox,编译器也无法知道它并因错误而停止。