Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Question

...

How do you suppress the creation of designer code for a component.  We are going to use C1s 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…

Code Block
         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

Code Block
this.picDataSource.Controls.AddRange(new System.Windows.Forms.Control[] {
            this.txtNumber,
            this._txtWhse_0,
            this.adoWhseGRID,
            this.vbsResize1
         });
panel

Answer

Find the definition of the control in your IDFs. The original control type is in the form definition

Code Block
Begin Resizer.vbsResize vbsResize1

The definition of this type is in resizer.ocx.xml

Code Block
<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

Code Block
...
</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>

3) Add an empty designer class to the IDF