图形导致纯白色按钮

时间:2018-12-05 16:34:44

标签: vb.net

我正在编码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

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解您的问题,也无法使用提供的代码来重新创建它。 但是我可以推荐一些可以帮助您的东西。

首先在处理图形时不要使用Control.Refresh(),而应使用Control.Invalidate()和Control.Update(),这可能会解决滞后问题。

您中继是否需要2种表格(我知道这是问题的根源)? 隐藏PictureBox(.Visible = False)并显示当时需要的其他控件,而不是隐藏表单。