Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Форма.Хелп Добавлено: 06.11.10 17:23  

Автор вопроса:  MISTER X | Web-сайт: studioartf.ru | ICQ: 463865965 
Обращаюсь к вам,дорогие форумчане за помощью.Можно ли как то рисовать на форме?тоесть выбрал допустим цвет кликнул и поставил точку,повел мышью нарисовал фигуру.?или как сделать чтоб по клику рисовалась точка,или например копировалась Image1 которая уже есть.дублировалась.Надеюсь вопрос понятен

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 06.11.10 18:30
обрабатывать событие MouseDown, брать коориднаты, рисовать классом Graphisc

Ответить

Номер ответа: 2
Автор ответа:
 MISTER X



ICQ: 463865965 

Вопросов: 31
Ответов: 190
 Web-сайт: studioartf.ru
 Профиль | | #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
MISTER X пишет:
код в студию плз
за тебя чтоль все написать? ;)

Ответить

Номер ответа: 5
Автор ответа:
 Алексей



ICQ: нету 

Вопросов: 6
Ответов: 42
 Профиль | | #5 Добавлено: 09.11.10 15:09
накидываешь на форму пикчер бокс, потом
  1.  
  2. Dim MG As Graphics
  3. MG = PictureBox1.CreateGraphics


ЕСли хочешь чтоб было связанос объектом Image или Bitmap, то тогда
  1.  
  2. Dim MG As Graphics
  3. Dim MB As New Bitmap(50?,50)
  4. MG = Graphics.FromImage(MyBitmap)


А потом погугли.
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
  1. Using MG As Graphics
  2.    ...
  3. End Using

Ответить

Номер ответа: 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 (в случае когда жзненный цикл объекта сложный и выходит за пределы одного метода).
Для любого вменяемого программиста это так же понятно как и то что в программе не должно быть ошибок компиляции.

Совет "это можно не делать, так как современная машина не заметит такогой маленькой утечки памяти" аналогичен совету "переходить дорогу нужно на зеленый свет, но можно и на красный если кажется что успеешь"

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам