Support Statement: Making a control into a class
Question
How do you suppress the creation of designer code for a component? We are going to use Component One's new grid version and their resizer light component. When I mapped the resizer, it looks good except it generates designer code that is not supported.
I assume this is because these are standard for a control…
this.vbsResize1.Location = new System.Drawing.Point(0, 32); this.vbsResize1.Name = "vbsResize1"; this.vbsResize1.Size = new System.Drawing.Size(0, 0);
and it adds a line to the control arrays
this.picDataSource.Controls.AddRange(new System.Windows.Forms.Control[] { this.txtNumber, this._txtWhse_0, this.adoWhseGRID, this.vbsResize1 });
Answer
Find the definition of the control in your IDFs. The original control type is in the form definition
Begin Resizer.vbsResize vbsResize1
The definition of this type is in the IDF resizer.ocx.xml
<DescriptionFile> <library id="Resizer.ocx" ... <coclass id="vbsResize" uuid="777CE4BD-E17B-453D-AC5F-46C6C22CF378" creatable="off" migStatus="ActiveX" migName="AxResizer.AxvbsResize"> ...
We will modify this IDF to make this component be treated like a plain class.
1) Copy the IDF to your target folder (proj\iusr) so your custom copy will take precedence over the standard one.
2) Add a Refactor block to the bottom of the file
... </library> <Refactor id="[Resizer.ocx]"> <!-- turn off adding to control collections --> <Migrate id="vbsResize" nPram="0" migPattern="vbsResize" role="define"/> <!-- replace default property initialization with an empty migClass --> <migClass id="NetControl.vbsResize" migName="vbsResize" parent="vbsResize"> </migClass> </Refactor> </DescriptionFile>