vb.net 如何禁止鼠标进过控件触发picturebox的paint事件
时间: 2023-05-30 11:02:04 浏览: 142
您可以在控件的 MouseEnter 事件中禁用绘制事件的触发,如下所示:
Private Sub PictureBox1_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox1.MouseEnter
RemoveHandler PictureBox1.Paint, AddressOf PictureBox1_Paint
End Sub
在这个例子中,当鼠标进入 PictureBox1 控件时,事件处理程序将从 Paint 事件中删除,这将禁止 PictureBox1 的绘制事件触发。
相关问题
vb.net 窗体中多个控件 只有一个控件才能触发 picturebox paint事件
这可能是因为其他控件没有被正确绘制或被遮挡了。在绘制控件时,只有被绘制的控件才会触发 paint 事件。如果您希望多个控件都能触发 paint 事件,可以在需要绘制的控件上设置背景色或使用透明控件来避免遮挡。同时,确保正确调用了控件的 Invalidate() 方法来触发重绘。
vb.net 控件改变时 picturebox paint事件禁止起作用
您可以在控件的TextChanged事件中设置一个标志,表示画布不需要重绘,并将其在Paint事件中检查。例如:
Private canvasNeedsRedraw As Boolean = True
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
canvasNeedsRedraw = False
End Sub
Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
If canvasNeedsRedraw Then
' 重绘画布
' ...
End If
End Sub
当TextBox1的文本改变时,将canvasNeedsRedraw标志设置为False,表示画布不需要重绘。在PictureBox1的Paint事件中,检查canvasNeedsRedraw标志。如果为True,则重绘画布。否则,不进行任何操作。