Previous | Index | Next 

[PRB] Replacing a VB6Placeholder control with another control causes an error in the VB.NET designer

VB Migration Partner converts unknown ActiveX controls to VB6Placeholder controls, which render as do-nothing controls with a red background. When you load the converted project in Visual Studio you should delete the placeholder control and replace it with a .NET control that behaves like the original control. Naming the new control after the original VB6 control ensures that references in code work as expected, after you fix all the differences in property names and method syntax.

However, when you attempt to name the new control after the original VB6 control, the Visual Studio form designer displays the following error message:

        There is already a component named 'xyz'.  Components must have unique names, 
        and names must be case-insensitive. A name also cannot conflict with the name 
        of any component in an inherited class.

where xyz is the name of the original VB6 control.

The error might be puzzling at first, because you might believe that you’ve already deleted the xyz control. A closer look at the form’s code reveals that it declares an Object variable named after the original control, and this variable causes the name conflict and that the placeholder control’s name was xyz_Placeholder.

You can rid of the compilation error by simply deleting the variable declaration.

 

Previous | Index | Next