无法使用pictureBox.Image

本文关键字:pictureBox Image | 更新日期: 2023-09-27 18:21:51

我正在制作一个游戏,我有一个名为gameScripts的类。在gameScripts内部是一个称为paintSquarepublic void方法。当调用此方法时,该方法使用2个if语句,根据哪一个为真,正方形图像将相应地更改。

问题是,当我尝试使用pictureBox.Image = Image.FromFile("cross.png");将图片更改为十字架时,pictureBox.Image会在其下方显示一条红线,并显示错误消息"Error 2 'System.Windows.Forms.Control' does not contain a definition for 'Image' and no extension method 'Image' accepting a first argument of type 'System.Windows.Forms.Control' could be found (are you missing a using directive or an assembly reference?) c:'x'x'x'x'x'x'x'gameScripts.cs"

我尝试过在命名空间中包含System.Drawing和System.Windows.Forms,但仍然出现此错误。

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

无法使用pictureBox.Image

消息'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,编译器也无法知道它,并以错误停止。