As explained in my previous post, VB Migration Partner 1.34 is a major update that contains many great features that make the most powerful VB6 converter on the market even more powerful.

If you are using the new version to re-migrate VB6 projects that have been instrumented with pragmas - in other words, you are adopting our convert-test-fix methodology - the notes that follow aren't really pertinent to you. On the other hand, if you plan to simply replace the current version of CodeArchitects.VBLibrary DLL with the new version there are a few things you should know.

  • we have changed the way the ImageList control is implemented, and this change may affect existing (migrated) forms. You can read more in this article
  • If you take advantage of the new CodeArchitects.VBPowerPack DLL - for example by copying it into VB Migration Partner's setup folder - you should consider that a few VB6 objects will be rendered by means of objects exposed by this new DLL, namely: the CommonDialog, Line, and Shape controls, the Printer object, and the Printers collection. The objects in this DLL are fully .NET classes that have no dependency on COM, however they are slightly less compatible with VB6 than the objects used by VB Migration Partner v.1.33 (that are still available in the main CodeArchitects.VBLibrary support library). Please read this article before deciding whether to use the new objects.

VB Migration Partner 1.34 introduces many new features that can greatly improve the behavior of your migrated projects. For example:

  • The new VB6Config.UseExCompositeStyle boolean property allows you to leverage a little-known feature of .NET forms and eliminate the flickering you may see when loading or resizing a form that contains many controls. (The flickering is especially apparent if the form has a background image). This article explains how and when to use this property.
  • The new VB6Config.DBCSSupport boolean property can be set to true to improve support for DBCS strings. This is especially useful for Japanese users. (Don't set this property to True unless necessary, because it would slightly reduce exection speed of some string functions.)
  • If the new VB6Config.UseVBPowerPack boolean prooperty is set to True, then the PrintForm method internally uses the PrintForm class defined in Microsoft VB PowerPacks. In some cases this setting delivers better results. Of course, if you assign True to this property the Microsoft.VisualBasic.PowerPacks.dll file must be installed on the end user's computer.
  • The VB6Form, VB6PictureBox, and VB6UserControl classes now expose the DoubleBuffered property. If you set this property to True - in the Properties window at design-time or programmatically via code - applications that perform massive graphic operations will run remarkably faster, up to a factor of 8x! The speed improvement is especially noticable for graphic methods that run inside the Paint event handler.
  • The CommandButton, CheckBox, and OptionButton controls now expose a boolean property named UseTextAlignment. If you set this property to True - in the Properties window at design-time or programmatically via code - then you can supercede the standard VB6-styled text alignment and precisely align the caption by means of the .NET TextAlignment property.
  • A new migration INFO message is generated for all Variant and Object variables whose type has been inferred into a more specific type. Thanks to this new message you can quickly check that VB Migration Partner inferred the correct type.

VB Migration Partner 1.34 has also fixed a few minor bugs and further improved the compatibility with VB6 in many areas.