ARTICLE

Host an OCX control within a .Net windows application-.Net and COM part IV

Posted by Bechir Bejaoui Articles | COM Interop November 03, 2008
In this article I will explain how to host an OCX control within a .Net application.
Reader Level:
Download Files:
 

I invite you to follow those steps to perform that.

Walkthrough

  1. Create an OCX customized control, either using Visual C++6.0 or Visual Basic 6.0 or download one from the internet, any one because the purpose here is to step through the manner of hosting it within a given Windows .Net application. (In my case, I ran the research on local machine for a given OCX and I have chosen the MSFlexGrid.ocx control and a testing control.

  2. Copy and paste your control in the root drive say the C:\ 
     
  3. Open the command prompt by browsing to Start>All programs>Accessory>Command prompt then type those couple of lines as bellow:

      

    The aximp that stands for ActiveX Control Importer is used in this case. It does the conversion type definitions according to COM type library for an OCX control into a standard Windows Forms control. Because Windows Forms can only host Windows Forms controls and not any other control types at any cases including the OCX ones, Of Corse. Aximp.exe generates a wrapper like the RCW the runtime callable wrapper class for an ActiveX control that can be hosted on a Windows Form. This is the only way that allows the OCX use.

    As the figure above shows, there is a new generated dll called MSFlexGridLib.dll located in C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin.

  4. Create a new Windows application project.

  5. Add a reference to this dll by going to the solution explorer, right clicking on the project and selecting Add reference menu item.



    Figure 1

  6. Select browse tab as follow :



    Figure 2

  7. As you can remark, the reference to your new generated dll is added.



    Figure 3

  8. Now, add the namespace using AxMSFlexGridLib; then add this couple of code within the load event handler
    stub as under:

    private
    void Form1_Load(object sender, EventArgs e)
        {
            AxMSFlexGrid oGrid = new AxMSFlexGrid();
            oGrid.Visible = true;
            oGrid.Parent = this;
            oGrid.Dock = DockStyle.Fill;
            oGrid.CellBackColor = Color.Bisque;
            oGrid.Cols = 7;
            oGrid.Rows = 30;
        }

  9. Finally, run the application.



    Figure 4
That's it
Good Dotneting !!!







 

Login to add your contents and source code to this article
comments
COMMENT USING
PREMIUM SPONSORS
Infragistics is experts in technology and design, and passionate about helping you build highly performant and stylish applications that solve problems, deliver inspiration, and maximize results.
HTML 5 + JQUERY CONTROLS
SPONSORED BY
Nevron Diagram