Казалось бы, легкий импорт .NET - PullRequest
0 голосов
/ 22 февраля 2012

Мне нужно вызвать этот метод, но я не могу найти его ни в одном пространстве имен.

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 

Ошибка: «Тип или имя пространства имен« CreateGraphics »не существует в пространстве имен'System.Windows.Forms (вам не хватает ссылки на сборку?) "

Спасибо за любую помощь.

--- EDIT ---

Я пытаюсьзапустите код из верхнего ответа этого поста:

GDI + / C #: как сохранить изображение в формате EMF?

--- EDIT --- *

С предложениями пользователя я пытаюсь:

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

--- РЕДАКТИРОВАТЬ ---

Неважно, извините, я глупый.Примет в секунду.

Ответы [ 3 ]

4 голосов
/ 22 февраля 2012

Это:

using FORMS = System.Windows.Forms;

Является псевдонимом пространства имен , а не псевдонимом типа.

Для пространств имен не определены методы.

Кроме того, CreateGraphics является не статическим, поэтому не может быть вызван напрямую для типа, только для экземпляра.

Предполагая, что myForm является экземпляром Form:

Graphics g = myForm.CreateGraphics();

В вашем связанном примере CreateGraphics() вызывается для экземпляра this неявно и предполагает, что вызов относится к типу Form или Control. Так что, если вы вызываете его в элементе управления / форме, он просто будет работать.

0 голосов
/ 22 февраля 2012

CreateGraphics - это метод в System.Windows.Forms.Control

. Вы можете использовать его следующим образом:

// Создать элемент управления: панель панели = новая панель ();

// Захватить графический объект из элемента управления: Graphics graphics = panel.CreateGraphics ();

// Сделать что-то с вновь созданным графическим объектом.

0 голосов
/ 22 февраля 2012

В классе 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

Графика также имеет FromImage Метод, который возвращает объект Graphics для рисования на изображении.

...