看似简单的.NET导入

本文关键字:NET 导入 简单 | 更新日期: 2023-09-27 18:25:38

我需要调用这个方法,但在任何命名空间中都找不到它。

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.creategraphics.aspx

它说它在System.Windows.Forms命名空间和System.Windows.Fforms.dll中。

我使用的是Visual Studio 2010,并将System.Windows.Forms引用导入到项目中。

在顶部,我做了一个导入(sry,我的Java俚语)using FORMS = System.Windows.Forms;

Graphics g = FORMS.CreateGraphics(); // error 

错误为:"类型或命名空间名称"CreateGraphics"在命名空间"System.Windows.Forms"中不存在(是否缺少程序集引用?)

谢谢你的帮助。

---编辑---

我正试图从这篇文章的顶部答案运行代码:

GDI+/C#:如何将图像保存为EMF?

---编辑---

根据用户的建议,我正在尝试:

Graphics g = new Graphics();
FORMS.Control a = new FORMS.Control();
g = a.CreateGraphics();

---编辑---

没关系,对不起,我很愚蠢。将在一秒钟内接受。

看似简单的.NET导入

这:

using FORMS = System.Windows.Forms;

命名空间别名,而不是类型别名。

命名空间上没有定义方法。

此外,CreateGraphics而不是静态的,因此也不能直接在类型上调用,只能在实例上调用。

假设myFormForm:的实例

Graphics g = myForm.CreateGraphics();

在链接示例中,CreateGraphics()this实例上被隐式调用,并假定该调用属于FormControl类型。因此,如果您在控件/窗体中调用它,它将正常工作。

Control类有一个CreateGraphics方法。因此,所有控件都具有该方法,可以使用该方法创建图形上下文以在其上绘制。
Form frm = new Form();
Graphics g = frm.CreateGraphics();
//you use g to draw on your form frm

这也是您链接到的帖子所说的。查看评论:

var g = CreateGraphics(); // get a graphics object from your form, or wherever

Graphics还有一个FromImage方法,它返回要在图像上绘制的Graphics对象。

CreateGraphics是System.Windows.Forms.Control 上的一个方法

你会这样使用它:

//创建控件:Panel Panel=new Panel();

//从控件中获取图形对象:图形=面板。CreateGraphics();

//对新创建的Graphics对象执行某些操作。