Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在我的类中使用pictureBox.Image_C#_Visual Studio 2012 - Fatal编程技术网

C# 无法在我的类中使用pictureBox.Image

C# 无法在我的类中使用pictureBox.Image,c#,visual-studio-2012,C#,Visual Studio 2012,我正在制作一个游戏,我有一个叫做gameScripts的类。在gameScripts内部有一个名为paintSquare的公共void方法。当调用此方法时,该方法使用2个if语句,并且根据哪个语句为真,正方形图像将相应地更改 问题是,当我尝试使用pictureBox.Image=Image.FromFilecross.png;要将图片更改为十字架,pictureBox.Image下面有一条红线,错误消息为错误2“System.Windows.Forms.Control”不包含“Image”的定义

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

问题是,当我尝试使用pictureBox.Image=Image.FromFilecross.png;要将图片更改为十字架,pictureBox.Image下面有一条红线,错误消息为错误2“System.Windows.Forms.Control”不包含“Image”的定义,并且找不到接受类型为“System.Windows.Forms.Control”的第一个参数的扩展方法“Image”。是否缺少using指令或程序集引用?c:\x\x\x\x\x\x\x\x\gameScripts.cs

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

非常感谢您的帮助。

消息“ClassXXX”不包含“YYY”的定义,并且找不到接受“ClassXXX”类型的第一个参数的扩展方法“YYY”。是否缺少using指令或程序集引用?字面意思就是它所说的。在您的代码中,很可能存在如下构造:

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,编译器也无法识别它,并会因错误而停止。

您不理解错误消息的哪一部分?您需要的是PictureBox,而不是控件。通常,如果我想在代码中更改图像,我会使用image.FromFileImage.png来更改图像,但在这种情况下,出现了错误消息PictureBox是什么?如何声明和赋值?pictureBox是paintSquare函数接受的参数,它是一个控件。@ReubenWard:为什么认为控件有图像属性?