Previous | Index | Next 

[PRB] A migrated form doesn’t fire the Paint event

A migrated form that doesn’t contain any control doesn’t fire the Paint event.

The explanation for this behavior is the following: we have noticed that under certain circumstances the .NET form fires *two* Paint events, therefore the VB6Form class in VB Migration Partner’s support library usually ignores one of these two events. However, if the .NET form contains no child controls only a single Paint event is fired. The VB6Form class therefore ignores this only event and the client application doesn’t receive any notification.

There are two workaround for this issue:

  1. add a dummy control on the form. Even a 1x1 pixel control is ok.
  2. Add the following code to your form
        Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
            IgnorePaintEvent = False
            MyBase.OnPaint(e)
        End Sub

 

Previous | Index | Next