C#则在"C:Class"目录中创建"ActiveXDotNet"文件夹,里面存放的是ActiveXDotNet项目文件,具体如图01所示:
图01:创建类库的【新建项目】对话框
7.选择【解决
方案资源管理器】窗口,并从中上传Class1.cs文件,因为此文件在本程序中已经没有用途了.
8.选择【项目】|【添加组件】后,弹出【添加新项】对话框,在此对话框中设定【模板】为"组件类",设定【名称】值为"MyControl.cs"后,单击【打开】按钮.则在项目文件中新增一个名称"MyControl.cs"的文件?咛迦缤?2所示:
图02:在项目中【添加新项】对话框
9. 把Visual Studio .Net的当前窗口切换到【MyControl.cs(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往设计窗体中按顺序拖入下列组件:
一个GroupBox组件,并向此组件中再拖入,
一个TextBox组件和一个Lable组件.
10. 把Visual Studio .Net的当前窗口切换到【MyControl.cs】代码编辑窗口,并用下列代码替换MyControl.cs中的
InitializeComponent过程,下列代码是初始化上述加入的组件:
private void
InitializeComponent ( )
{
this.groupBox1 = new System.Windows.Forms.GroupBox ( ) ;
this.txtUserText = new System.Windows.Forms.TextBox ( ) ;
this.label1 = new System.Windows.Forms.Label ( ) ;
this.groupBox1.SuspendLayout ( ) ;
this.SuspendLayout ( ) ;
this.groupBox1.Controls.Add (
this.txtUserText) ;
this.groupBox1.Controls.Add (
this.label1) ;
this.groupBox1.Location = new System.Drawing.Po
int (8 , 8) ;
this.groupBox1.Name = "groupBox1" ;
this.groupBox1.Size = new System.Drawing.Size (272 , 56) ;
this.groupBox1.TabIndex = 0 ;
this.groupBox1.TabStop = false ;
this.groupBox1.Text = "Visual Studio .Net创建
的Active X组件" ;
this.txtUserText.Enabled = false ;
this.txtUserText.Location = new System.Drawing.Po
int (84 , 20) ;
this.txtUserText.Name = "txtUserText" ;
this.txtUserText.Size = new System.Drawing.Size (180 , 21) ;
this.txtUserText.TabIndex = 1 ;
this.txtUserText.Text = "" ;
this.label1.Location = new System.Drawing.Po
int (8 , 24) ;
this.label1.Name = "label1" ;
this.label1.Size = new System.Drawing.Size (66 , 16) ;
this.label1.TabIndex = 0 ;
this.label1.Text = "输入信息:" ;
this.Controls.Add (
this.groupBox1) ;
this.Name = "MyControl" ;
this.Size = new System.Drawing.Size (288 , 72) ;
this.groupBox1.ResumeLayout (false) ;
this.ResumeLayout (false) ;
}
至此【ActiveXDotNet】项目创建的Active X组件的界面就基本完成了,具体如图03所示:
图03:【ActiveXDotNet】项目创建的Active X组件的
设计界面
11. 在MyControl.cs中的【MyControl 的摘要说明】代码区中添加下列代码,以下代码是定义一个公用的接口,此接口是告诉COM/COM+,这儿有一个公用的属性可以进行读写操作:
public
interface AxMyControl
{
String UserText
{
set ;
get ;
}
}
12. 在MyControl.cs的【MyControl】class代码区中添加下列代码,以下代码是首先定义一个私有的字符串,用此字符串来保存从Web测试页面中传递来的数值定义一个公用属性,在接下来的Web测试页面中,将通过这个属性来传递数值,此属性是可读写:
private String mStr_UserText ;
public String UserText
{
get
{
return mStr_UserText ;
}
set
{
mStr_UserText = value ;
//修改组件的数值
txtUserText.Text = value ;
}
}
13. 保存上面的修改步骤,至此我们就利用Visual C#创建了一个名称为MyControl的class,这也就是用Visual C#封装的、酷似Active X组件的组件.
14. 单击快捷键【Ctrl+F5】,则Visual C#会自动完成编译,并在"C:ClassActiveXDotNetinDebug"目录生成一个名称为"ActiveXDotNet.dll"文