~EviL~
16.05.2010, 20:01
Ребят, короче такая у меня проблема: я рисую график, который при запуске программы задерживается на 1 секунду и потом исчезает... Вот код:
Public Class Form3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub Form3_Paint()
Dim Graph1 As Graphics
Dim Pen1 As New Pen(Color.Black, 2)
Dim drawBrush As New SolidBrush(Color.Black)
Dim drawFont As New Font("Arial", 10)
Dim X, Y As Single
Dim M As Integer
Dim Size As Integer = 25
Dim Quality As Integer = 300
Graph1 = PictureBox1.CreateGraphics()
Graph1.Clear(Color.White)
'Печать шкал математической системы координат в компьютернеой системе координат
For X = -150 To 150 Step 50
Graph1.DrawString(X / Size, drawFont, drawBrush, X + 150, 80) 'Делим на масштаб
Next
For Y = 0 To 200 Step 50
Graph1.DrawString((Y - 100) / Size, drawFont, drawBrush, 150, 180 - Y) 'Делим на масштаб
Next
'Преобразование компьютерной системы координат в математическую систему координат
Graph1.ScaleTransform(1, -1) 'Поворот оси Y
Graph1.TranslateTransform(150, -100) 'Сдвиг осей
'Рисум оси
Graph1.DrawLine(Pen1, -150, 0, 300, 0) 'Ось Х
Graph1.DrawLine(Pen1, 0, -100, 0, 100) 'Ось Y
For X = -150 To 150 Step 50 'Засечки на оси Х
Graph1.DrawLine(Pen1, X, -5, X, 5)
Next
For Y = -100 To 100 Step 50 'Засечки на Y
Graph1.DrawLine(Pen1, -5, Y, 5, Y)
Next
Try 'Отлавливаем ошибки
M = Size 'М - масштаб
For X = -1.5 * (100 / Size) To 1.5 * (100 / Size) Step 10 / Quality 'Шаг в знач. качества
Y = Math.Sin(X)
Graph1.DrawEllipse(Pen1, X * M, Y * M, 1, 1)
Next X
Catch 'Если произошла ошибка то делаем следующее:
MsgBox("Произошла ошибка. Извините за неудобства", 48, "Ошибка!")
End Try
End Sub
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler PictureBox1.Paint, AddressOf Me.Form3_Paint
End Sub
End Class
Вызывается эта форма (Form3) из первой формы (Form1). Код:
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim Form3 As New Form3()
Form3.Show()
End Sub
Кто-то знает, как можно решить эту проблему? :(
Public Class Form3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.Close()
End Sub
Private Sub Form3_Paint()
Dim Graph1 As Graphics
Dim Pen1 As New Pen(Color.Black, 2)
Dim drawBrush As New SolidBrush(Color.Black)
Dim drawFont As New Font("Arial", 10)
Dim X, Y As Single
Dim M As Integer
Dim Size As Integer = 25
Dim Quality As Integer = 300
Graph1 = PictureBox1.CreateGraphics()
Graph1.Clear(Color.White)
'Печать шкал математической системы координат в компьютернеой системе координат
For X = -150 To 150 Step 50
Graph1.DrawString(X / Size, drawFont, drawBrush, X + 150, 80) 'Делим на масштаб
Next
For Y = 0 To 200 Step 50
Graph1.DrawString((Y - 100) / Size, drawFont, drawBrush, 150, 180 - Y) 'Делим на масштаб
Next
'Преобразование компьютерной системы координат в математическую систему координат
Graph1.ScaleTransform(1, -1) 'Поворот оси Y
Graph1.TranslateTransform(150, -100) 'Сдвиг осей
'Рисум оси
Graph1.DrawLine(Pen1, -150, 0, 300, 0) 'Ось Х
Graph1.DrawLine(Pen1, 0, -100, 0, 100) 'Ось Y
For X = -150 To 150 Step 50 'Засечки на оси Х
Graph1.DrawLine(Pen1, X, -5, X, 5)
Next
For Y = -100 To 100 Step 50 'Засечки на Y
Graph1.DrawLine(Pen1, -5, Y, 5, Y)
Next
Try 'Отлавливаем ошибки
M = Size 'М - масштаб
For X = -1.5 * (100 / Size) To 1.5 * (100 / Size) Step 10 / Quality 'Шаг в знач. качества
Y = Math.Sin(X)
Graph1.DrawEllipse(Pen1, X * M, Y * M, 1, 1)
Next X
Catch 'Если произошла ошибка то делаем следующее:
MsgBox("Произошла ошибка. Извините за неудобства", 48, "Ошибка!")
End Try
End Sub
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler PictureBox1.Paint, AddressOf Me.Form3_Paint
End Sub
End Class
Вызывается эта форма (Form3) из первой формы (Form1). Код:
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim Form3 As New Form3()
Form3.Show()
End Sub
Кто-то знает, как можно решить эту проблему? :(