VB Migration Partner

KNOWLEDGE BASE - Forms and controls

Previous | Index | Next 

[PRB] Setting the Font property at runtime causes an unexpected Paint event which may freeze the application

If you assign a new object to the Font property of a form, you indirectly trigger a Paint event under .NET. This is the standard .NET behavior and isn’t an issue related to VB Migration Partner’s support library. The extra Paint event doesn’t fire under VB6.

Because of this minor difference between VB6 and .NET, if you migrate a piece of VB6 code that assignes the Font property from inside the handler of the Paint event then the event is triggered again in a recursive manner, and the application appears to freeze or a StackOverflow error occurs.

To work around this issue, starting with version 1.33 the VB6Form, VB6PictureBox, and VB6UserControl classes expose a new property named PrintFont. This property affects the font used for Print methods as well as the result returned by TextWidth and TextHeight methods. If you don’t set it explicitly, it is equal to the standard Font property. Here’s an example of how to use it:

        Private  Sub Form_Paint()
            ' Change the font name, but use the same  font size
            '## ReplaceStatement Me.PrintFont = New  Font("Arial”, Me.Font.Size)
            Me.FontName = "Arial"
  Print "Test string"
  End Sub
Previous | Index | Next 

Follow Francesco Balena on VB6 migration’s group on


Read Microsoft Corp’s official case study of a VB6 conversion using VB Migration Partner.

Code Architects and its partners offers remote and onsite migration services.

More details

Subscribe to our free newsletter for useful VB6 migration tips and techniques.


To learn more about your VB6 applications, run VB6 Analyzer on your source code and send us the generated text file. You will receive a detailed report about your VB6 applications and how VB Migration Partner can help you to quickly and effectively migrate it to .NET.

Get free advice

A fully-working, time-limited Trial Edition of VB Migration Partner allows you to test it against your actual code

Get the Trial

The price of VB Migration Partner depends on the size of the VB6 application, the type of license, and other factors

Request a quote

Migrating a VB6 application in 10 easy steps

Comparing VB Migration Partner with Upgrade Wizard

Migration tools: Feature Comparison Table

All whitepapers