Несколько вопросов по VB.NET

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Несколько вопросов по VB.NET

Сообщение 13GHOST » 18.04.2009 (Сб) 8:23

Вот решил по тхоньку начать переходить на VB.NET. И столкнулся со след. проблемаи:
1. Решил нарисовать простой прямоугольник на поверхности

Код: Выделить всё
    Private Structure Rect
        Dim Left As Integer
        Dim Top As Integer
        Dim Right As Integer
        Dim Bottom As Integer
    End Structure
    Private Declare Function FillRect Lib "user32" Alias "FillRect" (ByVal hdc As Integer, ByVal lpRect As Rect, ByVal hBrush As Integer) As Integer
...
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim mrRect As Rect
        Dim hrBrush As Long
        mrRect.Left = 0 : mrRect.Top = 0 : mrRect.Right = 300 : mrRect.Bottom = 300
        hrBrush = CreateSolidBrush(RGB(255, 0, 0))
        FillRect(PictureBox1.CreateGraphics.GetHdc().ToInt32, mrRect, hrBrush)

     End Sub


пишет "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена." на строке: FillRect(PictureBox1.CreateGraphics.GetHdc().ToInt32, mrRect, hrBrush)
Пробывал создавал свои DC все равно результат тот же :(.

2. В VB6 очень довольно часто пользовался функцией ObjPtr. Покопался в интернете нашешл что вроде бы аналог в .NET является:

Код: Выделить всё
    Public Function ObjPtr(ByVal o As Object) As Integer
        Dim GC As System.Runtime.InteropServices.GCHandle = System.Runtime.InteropServices.GCHandle.Alloc(o, System.Runtime.InteropServices.GCHandleType.Pinned)
        Dim ret As Integer = GC.AddrOfPinnedObject.ToInt32
        GC.Free()

        Return ret
    End Function

Размещаю ее в модуле и при обращении к ней пишет: "Объект содержит данные, которые не являются примитивами или требуют преобразования." на строке "Dim GC As System.Runtime.InteropServices.GCHandle = System.Runtime.InteropServices.GCHandle.Alloc(o, System.Runtime.InteropServices.GCHandleType.Pinned)"

Ну вот пока что все :)

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 18.04.2009 (Сб) 11:05

13GHOST писал(а):1. Решил нарисовать простой прямоугольник на поверхности
Зацени объект Graphics

13GHOST писал(а):2. В VB6 очень довольно часто пользовался функцией ObjPtr
Из-за особенностей работы с памятью в .NET использование *Ptr крайне нежелательно, хотя есть методики создания неперемещаемых объектов, к которым можно обращаться по указателю, все же не следует к этому прибегать без необходимости
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 18.04.2009 (Сб) 11:30

Ну да я уже знаком с этим объектом, но а если я хочу рисовать через API? Так же множество API требует StrPtr, ObjPtr, и Varptr. Неужели нельщя найти компромисс?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 18.04.2009 (Сб) 12:08

13GHOST писал(а):но а если я хочу рисовать через API?
А смысл? Graphics - это удобная обертка над API.
13GHOST писал(а):Неужели нельщя найти компромисс?
Можно. Но .NET практически не нуждается в API, здесь есть свои аналоги правтически для всего. Что именно ты хочешь сделать, что не позволяет функционал .NET`а?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Несколько вопросов по VB.NET

Сообщение Williams » 18.04.2009 (Сб) 12:11

Все можно, только вероятно получится медленнее! :) В этом то и фишка нэта - использовать "Безопасный" и "Управляемый" код
И вы думаете, что вас оставят в живых после прочтения этого поста?

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Несколько вопросов по VB.NET

Сообщение karlex » 18.04.2009 (Сб) 12:14

13GHOST писал(а):Ну да я уже знаком с этим объектом, но а если я хочу рисовать через API?

Тогда зачем тебе VB.NET?
Ведь он на то и нужен по сути, чтобы избавить программиста от "гемора" предыдущих версий.
Win32API имеет меньший уровень абстракции чем классы VB.NET, что по сути должно облегчить программирование.
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 18.04.2009 (Сб) 14:02

просто пытался перевести отдельные части кода с VB6 проектов.
На раз так то буду искать замены стандартым "кускам" кода на .NET
А вообще работа с графикой через Graphics намного медленне чем через API?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 18.04.2009 (Сб) 14:04

13GHOST писал(а):А вообще работа с графикой через Graphics намного медленне чем через API?
Это и есть API. Скорость такая же. А если еще и руки прямые, то можно и быстрее сделать :)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Несколько вопросов по VB.NET

Сообщение karlex » 18.04.2009 (Сб) 15:23

MIT писал(а):Это и есть API. Скорость такая же.

Эм... ну вообще-то это обертка, т.е. скорость уже ни как не будет быстрее чем у чистого GDI+ Flat API, по крайней мере такое рассуждение логично.

Сколько не натыкался на различные обсуждения и бенчмарки впереди всегда был GDI (без плюса) и VB6.
Имеется ввиду в состязании [VB.NET и GDI+] vs [VB6 и GDI].
Я не утверждаю, что так и есть, я просто делюсь информацией.
Правда ребята не учли, что у GDI+ возможностей на порядок больше, поэтому ему не должно быть стыдно, если он будет немного подтормаживать. (мое ИМХО)
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 18.04.2009 (Сб) 15:49

karlex писал(а):Эм... ну вообще-то это обертка
Вообще-то я говорил об этом выше.

karlex писал(а):скорость уже ни как не будет быстрее чем у чистого GDI+ Flat API, по крайней мере такое рассуждение логично.
Я не ручаюсь за то, что весь Graphics - простая обертка, но говорю с полной уверенностью, что некоторые функции этого класса можно реализовать самому, получив некоторый (в отдельных случаях существенный) прирост скорости. Мы с Joo копали в эту сторону, когда тут на форуме было "меренье письками" и скооперировашись пришли к такому выводу, обставив по производительности все приведенные в топике примеры.
Из-за того, что вызывающее поведение Joo было неугодно нынешней администрации (в лице Хакера), самая последняя версия нашего творения так и не попала на форум.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Несколько вопросов по VB.NET

Сообщение Nord777 » 18.04.2009 (Сб) 16:43

Из-за того, что вызывающее поведение Joo было неугодно нынешней администрации (в лице Хакера)
Он наверняка догадывался о последствиях. И он явно переборщил.

самая последняя версия нашего творения так и не попала на форум.
А что мешает сделать это сейчас?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Несколько вопросов по VB.NET

Сообщение karlex » 18.04.2009 (Сб) 17:18

MIT писал(а):Вообще-то я говорил об этом выше.

MIT писал(а):Graphics - это удобная обертка над API.

13GHOST писал(а):А вообще работа с графикой через Graphics намного медленне чем через API?

MIT писал(а):Это и есть API.

Тогда уж ты как-то определись API это или обертка.

MIT, если захочешь на это что-то ответить, давай в личку, ибо мусорим.
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 18.04.2009 (Сб) 17:32

вот например в VB6 я собирал класс который с помощью АПИ покадрово загружал ГИФ файлы с амнимацией и имел процедуру вывода определнного кадра на определнную плоскость. Т е задаешь ему hDc, N и координаты и он тебе рисует кадр. В .NET system.drawing.ImageAnimator реалищован для анимации но совсем не так, как мне нужно. Вот поэтому я и хочу использовать АПИ, чтобы реализовывать задачи не более низком уровне.

А вообще пеерхожу не .NET потому что ВБ6 морально устарел и в нем нельзя сделать многопоточность

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Несколько вопросов по VB.NET

Сообщение Williams » 18.04.2009 (Сб) 18:07

13GHOST писал(а):А вообще пеерхожу не .NET потому что ВБ6 морально устарел и в нем нельзя сделать многопоточность


Не совсем так. Многопоточность в VB6 возможна (поищи статью Темыча), но осуществить ее в .NET намного проще
И вы думаете, что вас оставят в живых после прочтения этого поста?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 18.04.2009 (Сб) 18:13

Nord777 писал(а):А что мешает сделать это сейчас?
Да вобщем-то ничего :roll:

karlex писал(а):Тогда уж ты как-то определись API это или обертка.
Ладно, если тебе очень хочется услышать от меня определение, то я его могу сформулировать примерно так: Graphics - управляемая обертка над стандартным функционалом GDIp, реализованная как прямыми вызовами API так и при помощи переходников, позволяющих работать в .NET среде, при этом добавляя для большего удобства некоторый функционал, не имеющий прямого отношния к API. Поскольку работа зачастую произвадится именно через дополнительный функционал, то конечно неизбежно снижение скорости выполнения, однако возможно построение альтернативнх или новых процедур, призванных дополнить, усовершенствовать или оптимизировать данный класс не прибегая к стандартному API.

Отсюда можно сделать вывод, что API быстрее (ровно как и медленнее) работать не станет, однако .NET-переходники могут вызывать незначительное снижение скорости. Уменьшения ресурсозатрат можно добиться использованием своих процедур, напрямую работающих с памятью.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 19.04.2009 (Вс) 22:17

Вот еще вопрос возник: как можно получить картинку из массива байтов?
делаю так:

Код: Выделить всё
    Public Function byteArrayToImage(ByVal byteArrayIn As Byte()) As Image
        Dim ms As New MemoryStream(byteArrayIn)
        Dim returnImage As Image = Image.FromStream(ms)
        Return returnImage
    End Function

пишет "недопустимый параметр" на строке: Dim returnImage As Image = Image.FromStream(ms)
:(

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Несколько вопросов по VB.NET

Сообщение Williams » 19.04.2009 (Вс) 22:24

Прогнал


Код: Выделить всё
    Public Function byteArrayToImage(ByVal byteArrayIn As Byte()) As Image
        Dim ms As New MemoryStream(byteArrayIn)
        Dim returnImage As Image = Image.FromStream(ms)
        Return returnImage
    End Function

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

        Dim imageArray() As Byte = File.ReadAllBytes("C:\Users\Admin\Pictures\img.jpg")

        Dim img = byteArrayToImage(imageArray)

End Sub



Все ок - значит проблема в том, что за byteArrayIn ты передаешь в функцию.
И вы думаете, что вас оставят в живых после прочтения этого поста?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 19.04.2009 (Вс) 22:38

13GHOST писал(а):
Код: Выделить всё
    Public Function byteArrayToImage(ByVal byteArrayIn As Byte()) As Image
        Dim ms As New MemoryStream(byteArrayIn)
        Dim returnImage As Image = Image.FromStream(ms)
        Return returnImage
    End Function

Более компактно: Return Image.FromStream(New IO.MemoryStream(byteArrayIn))
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Несколько вопросов по VB.NET

Сообщение Williams » 19.04.2009 (Вс) 22:40

MIT писал(а):Более компактно: Return Image.FromStream(New IO.MemoryStream(byteArrayIn))


Однако же у такого рода компактности есть минусы при отладке, учитывая что выделяется строка с ошибкой. Хотя в данном случае это несущественно
И вы думаете, что вас оставят в живых после прочтения этого поста?

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 20.04.2009 (Пн) 7:01

хм. сделал так:
поместил на форму picturebox1 с картинкой внутри. + кнопку

Код: Выделить всё
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim msStream As New System.IO.MemoryStream
        PictureBox1.Image.Save(msStream, System.Drawing.Imaging.ImageFormat.Bmp)
        Dim mBytes() As Byte
        mBytes = GetStreamAsByteArray(msStream)
        Me.BackgroundImage = byteArrayToImage(mBytes)
    End Sub

'в модуле:

    Public Function byteArrayToImage(ByVal byteArrayIn As Byte()) As Image
        Dim ms As New MemoryStream(byteArrayIn)
        Dim returnImage As Image = Image.FromStream(ms)
        Return returnImage
    End Function
    Function GetStreamAsByteArray(ByVal stream As System.IO.Stream) As Byte()
        Dim streamLength As Integer = Convert.ToInt32(stream.Length)
        Dim fileData As Byte() = New Byte(streamLength) {}
        stream.Read(fileData, 0, streamLength)
        stream.Close()
        Return fileData
    End Function


возникает та же самая ошибка :(
пользуюсь VB.NET 2008

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 20.04.2009 (Пн) 7:10

Код: Выделить всё
    Public Function byteArrayToImage(ByVal byteArrayIn As Byte()) As Image
         Return Image.FromStream(New MemoryStream(byteArrayIn))
    End Function
    Public Function GetStreamAsByteArray(ByVal stream As System.IO.Stream) As Byte()
        Dim streamLength As Integer = Convert.ToInt32(stream.Length)
        stream.Position = 0
        Dim fileData(streamLength) As Byte
        stream.Read(fileData, 0, streamLength)
        stream.Close()
        Return fileData
    End Function

Обнуляй позицию в потоке.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 20.04.2009 (Пн) 8:21

заработало, но предыдуший вариант все равно не заработал. Там я составлял массив байт вручную из GIF файла для каждого кадра. А можно ли как нибудь прочесть GIF файл и получить отдельные его кадры в виде объектов Image?

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 20.04.2009 (Пн) 17:54

ладно с предыдущим вопросом разобрался, но возникли еще несколько :)
как в .NET можно заменить API Bitblt? Ну т е можно ли копировать изображение частями с одной graphics на другую?
как можно быстро добавить к массиву другой массив. Например раньше я делал так:
copymemory m1(4),m2(0),len
существует ли аналог здесь или придется их циклом приравнитвать?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 20.04.2009 (Пн) 18:00

Bitblt - Graphics.DrawImage (хотя реализация зависит от конкретной задачи. Я создавал аналогичные топики про графику - поищи)
копировать изображение частями - можно
как можно быстро добавить к массиву другой массив - ReDim Preserve arr1(newSize), Array.ConstrainedCopy(...)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Несколько вопросов по VB.NET

Сообщение karlex » 20.04.2009 (Пн) 19:31

13GHOST писал(а):как в .NET можно заменить API Bitblt? Ну т е можно ли копировать изображение частями с одной graphics на другую?

Лично я не нашел аналога.

DrawImage - это скорее аналог связки: CreatePatternBrush + FillRect
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 20.04.2009 (Пн) 19:42

Нет, ну если так хочется использовать именно BitBlt, то в общем-то никто и не против. Я даже пример выкладывал.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 20.04.2009 (Пн) 19:54

большое спасибо.
просто боюсь я тут использовать API. так как были случаи когда в некоторых случаях приложение не хотело их обрабатывать.
а еще вопрос: стоит ли использовать COM компоненты в .NET? Я хочу перевести проект с ВБ6, и по времени было бы намного быстрее если большую часть кода запаковать в ocx, но не уверен в стабильной работе COM компонентов

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 20.04.2009 (Пн) 20:00

13GHOST писал(а):просто боюсь я тут использовать API
Конкретно BitBlt работает нормально, однако не во всяком случае это самый рациональный подход.

13GHOST писал(а):стоит ли использовать COM компоненты в .NET?
Использовать можно, никто (вроде как) не запрещает, другое дело, что не красиво как-то получится (например я никогда не использую), да и не удобно.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Несколько вопросов по VB.NET

Сообщение 13GHOST » 21.04.2009 (Вт) 7:04

помогите разобраться совсем запутался.
вот собрал класс анимации: основная фишка - создать кучу анимаций из одного GIF файла. Вроде работает, но возникает следующая проблема:
после какого то промежутка времени анимация начинает рисовать вне формы на рабочем столе. Если удалить объект graphics окна после создания анимации произойдет тоже самое, видимо это возникает з за того что сборщик мусора после некоторого времени удаляет сам этот объект. Как быть в этом случае?
Вот прикрепляю исходник приложения и скриншот с проблемой
Вложения
bug.JPG
bug.JPG (42.14 Кб) Просмотров: 2842
WindowsApplication7.rar
исходник
(175.19 Кб) Скачиваний: 65

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Несколько вопросов по VB.NET

Сообщение MIT » 21.04.2009 (Вт) 7:48

Просто со временем созданный тобой Me.CreateGraphics уничтожается (указатель становиться нулевой), а нулевой указатель - это рабочий стол.
Решение - вывод всей графики в событии onPaint
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

След.

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 1

    TopList