Страница: 1 |
Страница: 1 |
Вопрос: Форма.Хелп
Добавлено: 06.11.10 17:23
Автор вопроса: MISTER X | Web-сайт:
Обращаюсь к вам,дорогие форумчане за помощью.Можно ли как то рисовать на форме?тоесть выбрал допустим цвет кликнул и поставил точку,повел мышью нарисовал фигуру.?или как сделать чтоб по клику рисовалась точка,или например копировалась Image1 которая уже есть.дублировалась.Надеюсь вопрос понятен
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 06.11.10 18:30
обрабатывать событие MouseDown, брать коориднаты, рисовать классом Graphisc
Номер ответа: 2
Автор ответа:
MISTER X
ICQ: 463865965
Вопросов: 31
Ответов: 190
Web-сайт:
Профиль | | #2
Добавлено: 06.11.10 18:58
а поподробнее можно?я гуглил чет ниче не нашел,а если нашел то непонял...код в студию плз..
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 06.11.10 19:17
http://msdn.microsoft.com/en-us/library/9dtfzwyx(VS.80).aspx
Номер ответа: 4
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #4
Добавлено: 07.11.10 00:29
код в студию плз
Номер ответа: 5
Автор ответа:
Алексей
ICQ: нету
Вопросов: 6
Ответов: 42
Профиль | | #5
Добавлено: 09.11.10 15:09
накидываешь на форму пикчер бокс, потом
ЕСли хочешь чтоб было связанос объектом Image или Bitmap, то тогда
А потом погугли.
http://lmgtfy.com/?q=%D0%9A%D0%BB%D0%B0%D1%81%D1%81+Brush(%D0%BA%D0%B8%D1%81%D1%82%D1%8C)+%D0%B2+Visual+Basic
Дальще думаю разберёшься.
Номер ответа: 6
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #6
Добавлено: 09.11.10 15:34
не забывайте Using -_-
Номер ответа: 7
Автор ответа:
Алексей
ICQ: нету
Вопросов: 6
Ответов: 42
Профиль | | #7
Добавлено: 09.11.10 15:46
В смысле?оО
Номер ответа: 8
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #8
Добавлено: 09.11.10 22:19
Номер ответа: 9
Автор ответа:
Алексей
ICQ: нету
Вопросов: 6
Ответов: 42
Профиль | | #9
Добавлено: 10.11.10 16:47
Это не обязательно
Номер ответа: 10
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #10
Добавлено: 10.11.10 23:27
Почему?
Номер ответа: 11
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #11
Добавлено: 11.11.10 01:01
System.Drawing.Graphics связан с неуправляемым ресурсом (gdi device context), поэтому среда выполнения .net не может самостоятельно выполнить освобождение этого ресурса когда он станет ненужным. Для недопущения утечек памяти и других побочных эфектов, удаление неуправляемых ресурсов необходимо выполнять вручную.
В .NET объекты, которые используют неуправляемые ресурсы, как правило реализуют интерфейс IDisposable, и вызов метода Dispose приводит к удалению этих ресурсов.
Несмотря на то, что вызов метода Dispose как правило дублируется в финализаторе, и удаление неуправляемых ресурсов может быть выполнено когда сборщик мусора удаляет объект, на это нельзя рассчитывать, так как среда выполнения не гарантирует времени когда будет вызван финализатор и не гарантирует что он вообще будет вызван при удалении объекта.
Поэтому, если выполняется работа с объектом, который имеет метод Dispose, необходимо обеспечить вызов этого метода после завершения работы с объектом. Причем даже в том случае если при работе кода произошло исключение. Поскольку конструкция, которая это обеспечивает (на основе блока try) является довольно громоздкой, вместо нее лучше использовать блок Using, при выходе из которого у объекта гарантированно будет вызван метод Dispose, даже если произошло исключение.
Таким образом, несмотря на то, что использование блока Using не является обязательным, его необходимо использовать для обеспечения стабильной работы приложения без утечек памяти и других побочных эфектов.
Номер ответа: 12
Автор ответа:
Алексей
ICQ: нету
Вопросов: 6
Ответов: 42
Профиль | | #12
Добавлено: 11.11.10 10:27
Тем не менее не обязательно, но в случае разработки серьёзного проекта крайне желательно, но если проект лёгкий, или System.Drawing.Graphics используется на протяжении всей работы проекта это можно не делать, так как современная машина не заметит такогой маленькой утечки памяти. В любом случае выбор остается за автором и ему решать.
Номер ответа: 13
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #13
Добавлено: 11.11.10 10:38
Повторюсь, при работе с неуправляемыми ресурсами необходимо обеспечивать корректное освобождение неуправляемых ресурсов.
Практически всегда это делается с помощью блока Using, но в некоторых случаях может быть необходим вызов Dispose (в случае когда жзненный цикл объекта сложный и выходит за пределы одного метода).
Для любого вменяемого программиста это так же понятно как и то что в программе не должно быть ошибок компиляции.
Совет "это можно не делать, так как современная машина не заметит такогой маленькой утечки памяти" аналогичен совету "переходить дорогу нужно на зеленый свет, но можно и на красный если кажется что успеешь"