Vb.net Visual Basic图形更新错误,仅在用户输入时更新

Vb.net Visual Basic图形更新错误,仅在用户输入时更新,vb.net,graphics,Vb.net,Graphics,我一直在开发一个简单的程序,它使用PictureBoxs并在表单上绘制网格 但是,当程序启动时,它会在我的picturebox所在的位置留下一个透明的框 见下文: 我在paint事件中仅有的代码是: Private Sub pb_key_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pb_key.Paint pb_key.Image = keyBMP End S

我一直在开发一个简单的程序,它使用PictureBoxs并在表单上绘制网格

但是,当程序启动时,它会在我的picturebox所在的位置留下一个透明的框

见下文:

我在paint事件中仅有的代码是:

Private Sub pb_key_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pb_key.Paint
    pb_key.Image = keyBMP
End Sub
其中keyBMP只是一个简单的白色矩形,它应该位于那个空的透明孔中

谢谢

注:
我曾尝试在表单加载处理程序中执行我的.Refresh(),但可惜没有白框

我的答案是通过一条评论给出的:


我认为不应该在paint事件中设置Image属性,因为它会导致paint事件再次激发,从而设置Image属性,从而导致paint事件一次又一次地激发。我很惊讶你没有得到堆栈溢出异常。通常,在绘制事件中不应执行任何会导致控件刷新的操作。在绘制事件外部设置该属性,然后调用pb_key.Refresh()–@ChrisDunaway

我认为不应该在绘制事件中设置图像属性,因为它会导致绘制事件再次激发,从而设置图像属性,从而导致绘制事件一次又一次地激发。我很惊讶你没有得到堆栈溢出异常。通常,在绘制事件中不应执行任何会导致控件刷新的操作。在绘制事件之外设置该属性,然后调用
pb\u key.Refresh()