Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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…

         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 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>
  • No labels