VB 2008 графика

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

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

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

VB 2008 графика

Сообщение Александр_ФФ » 20.01.2010 (Ср) 22:15

Здравствуйте!
Простите, если тема уже поднималась, по поиску не нашёл того, что надо.
VB2008 поставил сегодня, после шести лет на VB 6.
Сам вопрос:
Как выводить графику на форму или PicBox?
старые Pset, Line, Circle не поддерживаются, API не заработали у меня. (((
В справке VB2008 - только вывод графики в событии Paint. А если мне надо в любой момент в любом месте программы? Вызывать функцию Paint - я параметров sender и e не знаю.
Подскажите пожалуйста, хотя бы от клика кнопки чтобы рисовалось... дальше сам.
вот пример из справки
Код: Выделить всё
' Visual Basic
Private Sub Form1_Paint(ByVal sender As Object, ByVal e _
As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
    ' Draw a solid black line 25 pixels from the top of the form.
    e.Graphics.DrawLine(Pens.Black, 0, 25, Me.Width, 25)
End Sub


а как вызвать DrawLine не в Form1_Paint, а в любом событии?

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Re: VB 2008 графика

Сообщение 1Steps » 21.01.2010 (Чт) 2:01

Form1_Paint(...) отвечает за отрисовку формы. Это событие доступно почти во всех контролах.

Код: Выделить всё
Public Class Form1
    Private _drawLine As Boolean

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Можно так
        Using G As Graphics = Me.CreateGraphics
            G.DrawLine(Pens.Black, 0, 40, Me.Width, 40)
        End Using

        'Или так
        '_drawLine = True
        'Me.Refresh()
    End Sub

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        ' Draw a solid black line 25 pixels from the top of the form.
        If _drawLine Then
            e.Graphics.DrawLine(Pens.Black, 0, 25, Me.Width, 25)
        End If
    End Sub
End Class
Удалена за ненадобностью.

Александр_ФФ
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 23.11.2008 (Вс) 11:09
Откуда: Северодвинск

Re: VB 2008 графика

Сообщение Александр_ФФ » 21.01.2010 (Чт) 21:22

Благодарю!!
разобрался, что можно и в одну строчку:
Код: Выделить всё
PictureBox1.CreateGraphics.DrawLine(Pens.Black, 0, 40, Me.Width, 40)


Но ещё вопрос - цвета можно по-нормальному задавать? (rgb) я где-то видел, что задавались, но там в коде не смог разобраться.
И Api Gdi функции, что, совсем не работают? зачем всё усложнили-то? :(

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

Re: VB 2008 графика

Сообщение MIT » 21.01.2010 (Чт) 21:35

Код: Выделить всё
PictureBox1.CreateGraphics.DrawLine(New Pen(Color.FromARGB(a, r, g, b), 1), 0, 40, Me.Width, 40)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList