Это лучший способ рисовать изображения на форме? У меня есть большой опыт работы на Java и немного в VB.net. В Java есть repaint(), который можно вызвать? Существует Me.refresh(). Это то, что вы хотите вызвать, когда у вас есть что-то, чтобы добавить в форму или нарисовать форму.Метод окраски VB.NET?
Класс:
Public Class Form1
Private Sub Form1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
' Create image.
Dim newImage As Image = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
' Create Point for upper-left corner of image.
Dim ulCorner As New Point(50, 50)
' Draw image to screen.
e.Graphics.DrawImage(newImage, ulCorner)
Dim newImage2 As Image = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
' Create Point for upper-left corner of image.
Dim ulCorner2 As New Point(150, 150)
' Draw image to screen.
e.Graphics.DrawImage(newImage2, ulCorner2)
End Sub
End Class
Я попробовал этот код здесь с помощью одной кнопки на форме с событием нажатия
Public Class Form1
Dim i As Integer
Private Sub Form1_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
i = 0
' Create image.
Dim newImage As Image = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
' Create Point for upper-left corner of image.
Dim ulCorner As New Point(50, 50)
' Draw image to screen.
e.Graphics.DrawImage(newImage, ulCorner)
Dim newImage2 As Image = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
' Create Point for upper-left corner of image.
Dim ulCorner2 As New Point(150, 150)
' Draw image to screen.
e.Graphics.DrawImage(newImage2, ulCorner2)
If i = 5 Then
' Create image.
Dim newImage3 As Image = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
' Create Point for upper-left corner of image.
Dim ulCorner3 As New Point(250, 250)
' Draw image to screen.
e.Graphics.DrawImage(newImage3, ulCorner3)
End If
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
i = 5
Me.Refresh()
End Sub
End Class
Просто Попробовал этот код здесь:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
i = 5
Me.Invalidate()
End Sub
Нового класс только Протестировано:
Public Class Form2
Dim newImage As Image = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
Dim newImage2 As Image = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
Dim newImage3 As Image = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
Private bgImage As Bitmap
Private srcImages As Image()
Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
Dim img As Bitmap = Me.bgImage
If (img Is Nothing) Then
Me.bgImage = New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height)
img = Me.bgImage
End If
If (Not Me.srcImages Is Nothing) Then
End If
MyBase.OnPaint(e)
End Sub
Private Sub _Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.srcImages = New Image(3 - 1) {}
Me.srcImages(0) = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
Me.srcImages(1) = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
Me.srcImages(2) = Image.FromFile("C:\Users\itpr13266\Desktop\Pic\article-tip.gif")
End Sub
Private Sub _Disposed(sender As Object, e As EventArgs) Handles MyBase.Disposed
If (Not Me.srcImages Is Nothing) Then
For Each img As Image In Me.srcImages
If (Not img Is Nothing) Then
img.Dispose()
End If
Next
Me.srcImages = Nothing
End If
If (Not Me.bgImage Is Nothing) Then
Me.bgImage.Dispose()
Me.bgImage = Nothing
End If
End Sub
Private Sub _Resize(sender As Object, e As EventArgs) Handles MyBase.SizeChanged, MyBase.Resize
If (Not Me.bgImage Is Nothing) Then
Me.bgImage.Dispose()
Me.bgImage = Nothing
End If
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Me.Invalidate()
End Sub
End Class
Почему вы хотите нарисовать свою форму? Каково ваше требование? вы можете использовать свойства backgroundimage и backcolor – Magesh