VB6 vs VB.NET controls - TextBox control

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.

Follow Francesco Balena on VB6 migration’s group on


Read Microsoft Corp’s official case study of a VB6 conversion using VB Migration Partner.

Code Architects and its partners offers remote and onsite migration services.

More details

Subscribe to our free newsletter for useful VB6 migration tips and techniques.


To learn more about your VB6 applications, run VB6 Analyzer on your source code and send us the generated text file. You will receive a detailed report about your VB6 applications and how VB Migration Partner can help you to quickly and effectively migrate it to .NET.

Get free advice

A fully-working, time-limited Trial Edition of VB Migration Partner allows you to test it against your actual code

Get the Trial

The price of VB Migration Partner depends on the size of the VB6 application, the type of license, and other factors

Request a quote

Migrating a VB6 application in 10 easy steps

Comparing VB Migration Partner with Upgrade Wizard

Migration tools: Feature Comparison Table

All whitepapers