0

我一直在研究一个使用图片框并在表单上绘制网格的简单程序。

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

见下图:

表格中的透明框

我在绘画事件中的唯一代码是:

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 只是简单的,一个白色的矩形,意味着在那个空的透明孔中。

谢谢

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

4

1 回答 1

0

我的回答是通过评论给我的:

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

于 2013-09-11T04:47:44.123 回答