我正在编码Conway的生活游戏。我的网格完全在图片框中,但是当我加载表格时,右上方的后退按钮是完全白色的。刷新表单可以修复按钮,但使按钮难以置信。其他所有按钮均显示正常,只是后退按钮已损坏。我该如何解决?
Option Strict On
Public Class frmGame
' Declaring public variables
Public bmp As Bitmap
Public G As Graphics
Public WithEvents speed As Timer
Public grid(50, 40) As Boolean
Public input(50, 40) As Boolean
Public intGens As Integer = 0
Public change As Boolean = False
Public P As New Pen(Color.Black)
Private Sub picGrid_Paint(sender As Object, e As PaintEventArgs) Handles picGrid.Paint
' Loads bitmap, graphics, etc and prepares to begin simulation
' Creates graphics device
bmp = New Bitmap(600, 480)[enter image description here][1]
picGrid.Image = bmp
G = Graphics.FromImage(bmp)
' Defining variables for grid
Dim x As Integer = 0
Dim y As Integer = 0
' Draws grid
For y = 0 To 480
For x = 0 To 600
G.DrawRectangle(pen:=P, x:=x, y:=y, width:=12, height:=12)
x += 12
Next
x = 0
y += 12
Next
End Sub
Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click
' Hides rules form, shows main menu form
frmMainMenu.Show()
Me.Hide()
End Sub
Private Sub frmGame_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
' Frees memory when form is closed
G.Dispose()
bmp.Dispose()
speed.Dispose()
End Sub
End Class
答案 0 :(得分:0)
我不确定我是否理解您的问题,也无法使用提供的代码来重新创建它。 但是我可以推荐一些可以帮助您的东西。
首先在处理图形时不要使用Control.Refresh(),而应使用Control.Invalidate()和Control.Update(),这可能会解决滞后问题。
您中继是否需要2种表格(我知道这是问题的根源)? 隐藏PictureBox(.Visible = False)并显示当时需要的其他控件,而不是隐藏表单。