Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Графика на форме Добавлено: 17.11.11 13:39  

Автор вопроса:  desasha | ICQ: 499363400 
Здраствуйте. Срау замечу, что в програмировании совсем новичек.

Итак, задача следующая: ВБ`08. на форме по массивам точек я создаю по нажатию на кнопку (или другому простому событию) линии через
        Dim g As Graphics = Me.CreateGraphics
        Dim Way(2) As PointF
        Way(0) =
        Way(1) =
        Way(2) =
        g.DrawLines(Pens.Black, Way)

Таких линий на форме будет много, к тому же им часто придется менять цвет и ширину. для обновления я использовал команду
        Me.Refresh()
и снова производил рисование. Но как только окно сворачивается или вызывается другая форма - все стирается и приходится заново рисовать.
   Подскажите, как можно сохранить эти объекты на форме, а перерисовывать их только в нужный мне моент?
З.Ы. 1.через стандартное событие Form1_Paint() не уверен, дабы большим потоком операций не повешать комп.
2. Буду очень признателен, если кто поделится ссылкой на литературу, где грамотно можно почитать о передаче аргументов событий (что передавать под теми чертовыми "sender" и "е")в вызываемые функции,а то с этим вообще у меня никак не получается разобратся.

Заранее благодарен

Ответить

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

Номер ответа: 1
Автор ответа:
 ---Fix---



ICQ: 348680795 

Вопросов: 12
Ответов: 33
 Профиль | | #1 Добавлено: 18.11.11 11:42
Рисуй свои линии в Bitmap в памяти, потом укажи форме фоновое изображение - свой битмап. Когда нужно будет изменить линии снова устанавливай фоновую картинку форме.

Ответить

Номер ответа: 2
Автор ответа:
 Cramper



Вопросов: 15
Ответов: 93
 Профиль | | #2 Добавлено: 15.12.11 14:09
Хороший совет. У меня тоже были проблемы с прорисовкой на форме.

Вот пример кода для VB 2010

1. Создайте файл с:\pic.bmp
2. В поле формы вставьте кнопку Button1 и PictureBox1


Public Class Form1
    ;Dim fs As New System.IO.FileStream("c:\pic.bmp", IO.FileMode.Open)
    ;Dim bm As New Bitmap(fs)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        fs.Close()

        ;Dim g As Graphics = Graphics.FromImage(bm)
        g.FillEllipse(Brushes.Red, 10, 10, 100, 100)
        g.DrawLine(Pens.Black, 0, 0, 50, 50)
        g.Dispose()

        bm.Save("C:\pic.bmp", Imaging.ImageFormat.Bmp)
        PictureBox1.Image = Image.FromFile("c:\pic.bmp";)
        

    End Sub

End Class


Теперь Рисунок исчезать не будет при сворачивании формы и прочих манипуляциях.

Ответить

Страница: 1 |

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



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