看似简单的.NET导入

时间:2012-02-22 16:42:04

标签: c# .net namespaces

我需要调用此方法,但我无法在任何命名空间中找到它。

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

它表示它位于System.Windows.Forms命名空间和System.Windows.Forms.dll中。

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

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

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

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

感谢您的帮助。

--- --- EDIT

我正在尝试从这篇文章的最佳答案中运行代码:

GDI+ / C#: How to save an image as EMF?

--- --- EDIT

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

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

--- --- EDIT

没关系,对不起,我是傻瓜。会在一秒钟内接受。

3 个答案:

答案 0 :(得分:4)

此:

using FORMS = System.Windows.Forms;

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

命名空间没有定义方法。

此外,CreateGraphics 是静态的,因此无法直接在某个类型上调用,仅在实例上调用。

假设myFormForm的实例:

Graphics g = myForm.CreateGraphics();

在您的关联示例中,隐式调用CreateGraphics()实例上的this,并假定该调用位于FormControl类型内。所以,如果你在一个控件/表单中调用它,它就会起作用。

答案 1 :(得分:0)

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对象以在图像上绘制。

答案 2 :(得分:0)

CreateGraphics是System.Windows.Forms.Control

上的一个方法

你会这样使用它:

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

//从控件中抓取一个图形对象: Graphics graphics = panel.CreateGraphics();

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