I have declared Fonts at class level to use it through my methods in that form. Form 'frmA' is shown with ShowDialog and when it closes or stops using fonts I'd like to properly dispose fonts.
When I run code analysis FxCop it complaints with:
CA2213 : Microsoft.Usage : 'frmA' contains field 'frmA.Font1' that is of IDisposable type: 'Font'. Change the Dispose method on 'frmA' to call Dispose or Close on this field...
How to properly dispose globally declared fonts so that is "by the rules" and FxCop does not complain any more?
How to 'Change the Dispose method on 'frmA' to call Dispose'?

VB.Net Code:
  1. Option Strict On
  2. Public Class frmA
  3.    Dim Font1 As System.Drawing.Font  
  4.    Dim Font2 As System.Drawing.Font  
  5.    Dim Font3 As System.Drawing.Font
  6.  
  7.    Private Sub frmA_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.       'Do something on load
  9.       Start()   'cals method Start that will call all other methods...
  10.    End Sub
  11.  
  12.    Private Sub Start()
  13.     Try
  14.       Font1 = New Font("Arial", 10, FontStyle.Regular)
  15.       Font2 = New Font(Font1.Name, 12, FontStyle.Underline)
  16.       Font3 = New Font(Font1.Name, 14, FontStyle.Bold)
  17.       One()
  18.       Two()
  19.     Finally   '==>> this is how disposing is now done: in Finally...
  20.       Font1.Dispose()
  21.       Font2.Dispose()
  22.       Font3.Dispose()
  23.     End Try
  24.    End Sub
  25.  
  26.    Private Sub One()
  27.       'draw something with above fonts...
  28.    End Sub
  29.  
  30.    Private Sub Two()
  31.       'draw something with above fonts...
  32.    End Sub
  33. End Class
Thank for any help...
(.NET Framework 2, VS 2008, Win XP)