无法使用pictureBox.Image
本文关键字:pictureBox Image | 更新日期: 2023-09-27 18:21:51
我正在制作一个游戏,我有一个名为gameScripts
的类。在gameScripts
内部是一个称为paintSquare
的public 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,但仍然出现此错误。
任何帮助都将不胜感激,谢谢。
消息'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
,编译器也无法知道它,并以错误停止。