使用C#编写可被桌面应用调用的ActiveX控件

 
环境说明:Windows2003,VS2005

简介:控件用C#开发,控件中有一个按钮和一个文本框,单击控件上的按钮则清空文本框里的内容;
            控件测试程序用VC开发,为MFC对话框程序,对话框上有一个“发送按钮”、“接收按钮”、“文本框”和“C#开发的控件”;
            单击对话框上的“发送按钮”,则将对话框上“文本框”中的内容发送到“C#开发的控件”的文本框中,单击对话框上的“接收按钮”,则将“C#开发的控件”的文本框中的内容接收到对话框上的“文本框”中。
     

第一步:新建“windows控件工程”MyControl
第二步:修改项目配置信息
               1、修改项目配置文件:AssemblyInfo.cs
                     [assembly: AssemblyDescription("MyControl & com")]
                     [assembly: ComVisible(true)]

               2、修改项目属性:
                     选中项目“MyControl”\右键单击\选择属性\选择“生成”\选中为Com Interop注册

               3、将控件名称改为:MyTestControl
                      在文件MyTestControl.cs中添加如下代码:using System.Runtime.InteropServices;

第三步:新建接口:IMyControl

    [Guid("6B576723-028A-4b1e-81DB-295E0159C8AF")]
    public interface IMyControl
    {
        string MyText
        {
            get;
            set;
        }
    }

第四步:修改控件定义
    将 public partial class MyTestControl : UserControl改为:
    [Guid("FDF49DB3-54C2-4b4f-963C-349B5D68E483")]
    public partial class MyTestControl : UserControl, IMyControl
第五步:向控件添加一个按钮(button1)和一个文本框(textBox1)
                并向按钮添加单击事件:

        public void button1_Click(object sender, EventArgs e)
        {
            this.textBox1.Text = "";
        }

第六步:向MyTestControl类中添加如下代码:

        public string MyText
        {
            get
            {
                return this.textBox1.Text;
            }
            set
            {
                this.textBox1.Text = value;
            }
        }
原文地址:https://www.cnblogs.com/Xrinehart/p/712074.html