Previous | Index | Next 

[PRB] Stand-alone UserControl, UserDocument, and PropertyPage keywords might not be converted correctly

Inside a VB6 UserControl, the UserControl keyword is a synonym for the Me keyword. However, an undocumented feature allows to use the UserControl keyword to implicitly iterate over the collection of constituent controls, as in:

        Dim c As Control 
        For Each c In UserControl
            ' iterate over UserControl’s child controls
        Next

This syntax isn’t directly supported by VB Migration Partner, which incorrectly translates it to:

        Dim c As Control 
        For Each c In MyBase
            ' iterate over UserControl’s child controls 
        Next

The same issue can be caused by the UserDocument and PropertyPage stand-alone keywords. You can solve this issue quite easily by adding the following PostProcess pragma inside UserControl, UserDocument, and PropertyPage classes:

        '## PostProcess " In MyBase\b(?!\.)", " In Me.Controls6", True, False, ""

 

Previous | Index | Next