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.





TextBox control

Alignment property

The Alignment property has been renamed as TextAlign.



Appearance and BorderStyle properties

The VB6 Appearance property has been dropped and its effect has been integrated into the VB.NET BorderStyle property, according the following rule: if BorderStyle is equal to 0-None under VB6 then the control has no border and the Appearance property is ignored; if BorderStyle is equal to 1-FixedSingle and Appearance is equal to 0-Flat under VB6, then the VB.NET BorderStyle is set to 1-Flat; if BorderStyle is equal to 1-FixedSingle and Appearance is equal to 1-ThreeD under VB6, then the VB.NET BorderStyle is set to 2-Fixed3D.

VB Migration Partner supports all the combinations of Appearance and BorderStyle properties.



Change event

The Change event has been renamed as TextChanged.



Locked property

This property has been renamed as ReadOnly, because the Locked property is used by the Visual Studio’s form designer.

VB Migration Partner supports the Locked property, so that code that uses this property works after the migration even if the control is accessed in late-bound mode.



PasswordChar property

This property is of String type under VB6 and of Char type under .NET. This causes a minor problem because you can’t assign an “empty char” to the PasswordChar property in VB.NET; to disable the password feature in VB.NET you must assign an ASCII 0 char to this property.

For the highest compatibility, VB Migration Partner supports a PasswordChar property of String type. If a multi-char string is assigned to this property, only the first character is used to define the password char, as in VB6. Notice that a different property – named PasswordChar_, with a trailing underscore) is used to assign the property in the Properties window.



ScrollBars property

The VB6 ScrollBars property indirectly affects word wrapping: if ScrollBars is equal to 2-Vertical, then long text lines are automatically wrapped to the next line. To achieve the same behavior under VB.NET you have to explicitly set the WordWrap property to True.

VB  Migration Partner correctly replicates the VB6 behavior under .NET.



SelStart, SelLength, and SetText properties

The VB6’s SetStart, SelLength, and SetText properties have been renamed as SelectionStart, SelectionLength, and SelectionText under VB.NET, respectively.

There is also a minor difference in the behavior: the SelStart property indirectly resets the SelLength property to 0 and the SelectionText to an empty string, and ensures that the insertion point is visible inside the TextBox control. In VB.NET you have to invoke the ScrollToCaret method to bring the insertion point into the control’s visible area.

VB  Migration Partner correctly replicates the VB6 behavior under .NET.



Text property

If you assign a string that is longer than the current value of the MaxLenght property, VB6 automatically trims the value to MaxLength characters, whereas VB.NET doesn’t.

VB  Migration Partner correctly replicates the VB6 behavior under .NET.