This section describes the differences between VB6 and .NET controls and the problems you can find in migrating VB6 applications with user-interface. The differences that are common to most controls are described in the Controls (general) section.

For a list of differences between VB6 and VB.NET language, see here.

Unless otherwise stated, VB Migration Partner fully supports all the Visual Basic 6 features mentioned in this page. It is worth noticing that names of properties and methods are preserved, which ensures that those even late-bound references work correctly after the migration to VB.NET. For more information, please read the manual and the knowledge base section.

Frame control

BorderStyle property

The Upgrade Wizard converts a Frame control into either a GroupBox control or a Panel control, depending on whether the Frame control has a border at design-time. Likewise, VB Migration Partner converts a Frame control into a VB6Frame control (which inherits from GroupBox) or a VB6FrameNoBorder control (which inherits from Panel).

The problem is that the .NET GroupBox control always has a visible border, therefore you can’t later hide the border by assigning 0 to the BorderStyle property. In VB.NET projects created by the Upgrade Wizard this assignment causes a compilation error; in VB.NET projects created by VB Migration Partner this assignment compiles fine but generates a warning coming from the Obsolete attribute associated with the BorderStyle property.

If the Frame control is borderless at design-time – and is therefore converted into a Panel or a VB6FrameNoBorder control, which inherits from Panel – then assignments to the BorderStyle compile and run fine. However, the visual effect is slightly different from VB6, because the border runs along the control’s edge (in VB6 it runs a few pixels away from the edge). Moreover, the Panel control and the VB6FrameNoBorder control can’t display a caption, therefore any assignment to the Text or Caption property is ignored.