Previous | Index | Next 

[PRB] Setting the Font property inside a Paint event causes an endless loop

Under .NET, assigning a new value to the Font property of a control fires a Paint event. For this reason, performing such an assignment from inside the event for the Paint event causes an endless loop, that might eventually throw a StackOverflow exception.

To avoid this loop, the VB6Forn, VB6PictureBox, and VB6UserControl classes have been expanded with a new PrintFont property, which can be assigned without any side-effect. The font assigned to this new property is the one that is actually used by the Print method. The following example shows how to use this property inside the handler for the Paint event of a PictureBox control:

Private  Sub Picture1_Paint()
  Picture1.Cls
  '## ReplaceStatement Picture1.PrintFont = New Font("Arial", Me.Font.Size, Me.Font.Style)
  Picture1.FontName = "Arial"
  Picture1.Print "A row "
  '## ReplaceStatement Picture1.PrintFont = New Font("Times New Roman",Me.Font.Size,Me.Font.Style)
  Picture1.FontName = "Times New Roman"
  Picture1.Print "Another Row "
End  Sub

 

Previous | Index | Next