COM组件如果不是拖拽方式创建,写代码怎么实现?

COM组件如果不是拖拽方式创建,写代码如何实现??
         通过拖拽控件 生成的实例 创建代码如下

  this.axvg1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.axvg1.Enabled = true;
            this.axvg1.Location = new System.Drawing.Point(0, 0);
            this.axvg1.Name = "axvg1";
            this.axvg1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axvg1.OcxState")));
            this.axvg1.Size = new System.Drawing.Size(484, 369);
            this.axvg1.TabIndex = 0;
            // 

如果是不用拖拽方式,手动创建的代码的话,  this.axvg1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axvg1.OcxState"))); 的含义如何替换 才能实现??

------解决思路----------------------
axvg1是个什么玩意
首先你就必须初始化它,因为我不知道你到底用的什么com组件,所以先用ThisCom代替它的类名
ThisCom axvg1=new ThisCom();

其实你拖拽完,看看设计器代码里多出了什么东西,复制出来用就好了
------解决思路----------------------
引用:
查看Designer.cs代码,其他的都容易懂, axvg1是控件的名字,下面设置ocxState是指什么??

人家知道 axvg 是个控件,人家问你 axvg1 是个什么类型的玩意。

如果你说不出来,把 axvg 这个变量的定义语句贴出来。

------解决思路----------------------
var type = Type.GetTypeFromProgID(ProgId); // ProgId 就是axvg1.OcxState
var comObject = Activator.CreateInstance(type);