You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET WinForm使用LinearGradientBrush后最小化恢复崩溃问题

解决VB.NET WinForm渐变背景与TextBox共存时最小化恢复崩溃问题

问题原因

问题根源在于LinearGradientBrush未正确释放GDI+资源。该类实现了IDisposable接口,每次在Paint事件中创建却不释放,会导致GDI资源持续泄漏,当窗体与TextBox触发重绘(比如最小化后恢复)时,资源耗尽引发崩溃。

解决方案

使用Using语句自动管理LinearGradientBrush的生命周期,确保每次使用后立即释放资源,从根源避免泄漏问题。

修正后的代码

Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
    Using gradBrush As New LinearGradientBrush(Me.ClientRectangle, Color.Blue, Color.White, LinearGradientMode.BackwardDiagonal)
        e.Graphics.FillRectangle(gradBrush, Me.ClientRectangle)
    End Using
End Sub

额外说明

  • 所有实现IDisposable接口的GDI+对象(如Brush、Pen、Font等),都建议用Using语句包裹,或手动调用Dispose()方法释放资源。
  • 若需复用Brush以提升性能,可在窗体类中声明成员变量,在Form_Load事件中初始化,最后在Form_FormClosed事件中调用Dispose()完成释放。

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 01:45:31