Previous | Index | Next 

[PRB] A form behaves differently the second time it is opened

Many VB6 applications manipulate forms by means of their default instance, as in this code:

        frmPreview.Show    ' display the default instance of the frmPreview form

VB.NET supports form default instances, however converted application might not behave as expected. The first symptom of such problem is that the form works correctly the first time it is being showed, but behaves differently (or delivers wrong results) if it is re-opened.

Fixing this problem is quite simple: you just need to force VB.NET to use a new instance of the form the next time the form is displayed. You do so by setting the default instance to Nothing just before referencing it, as in:

        Set frmPreview = Nothing  ' force VB6 to use a different instance of the form
        frmPreview.Show

In the vast majority of cases, you can add the Set statement in VB6 without changing the application’s behavior. If you notice that the VB6 application is affected somehow, though, you can achieve the desired effect by means of an InsertStatement pragma:

        '## InsertStatement frmPreview = Nothing
        frmPreview.Show

 

Previous | Index | Next