参考资料 Creation of .NET Controls 109759944_Prepare.NetControls_DOC_en.pdf

插件的编写

  1. 创建插件项目,选择Windows窗体控件库(.NET Framework)

  2. 框架选择 4.5.2以上版本

  3. 为程序集签名

    1. 在项目上右键点击属性.
    2. 切换到签名选项卡.
    3. 勾选为程序集签名,并创建签名密钥.

  4. 可选:为控件添加属性

    在控件代码中增加属性代码

            private bool mvalue;//私有变量
    //Category 表示属性所在的分类 Data表示在数据类中
    //Description 表示在属性页中显示的描述
    //Browsable 表示是否在属性页中显示, 不增加默认为true
    //DefaultValue 默认值,不填为空
    [Category("Data")]
    [Description("这是一个变量")]
    [Browsable(true)]
    [DefaultValue(true)]
    public bool MValue
    {
    get { return mvalue; }
    set { mvalue = value; }
    }

  5. 可选:为控件添加事件

    1. 创建自定义委托(可选)

              //委托
      public delegate void MyChangeEventHandler();
    2. 添加自定义事件

              [Browsable(true)]//是否显示,不添加为true,为false为隐藏
      [Category("Action")]//事件分类
      [Description("Invoked when user clicks button")]//描述
      public event EventHandler ButtonClick;//此处 Eventhandle 可以改为自定义委托 MyChangeEventHandler
    3. 内部触发事件

              protected void Button1_Click(object sender, EventArgs e)
      {
      //检查事件列表是否为空
      if (this.ButtonClick != null)
      this.ButtonClick(this, e);
      }

  6. 生成插件

    点击生成下的生成来生成插件,在bin目录中找到生成的插件dll

插件的使用

  1. 全局注册
  1. 全局注册的程序 ,在生成时必须选anyCpu 如果,如果不是AnyCpu生成如(X86,X64)只能通过手工加载的方式

  2. 全局注册需要安装.net 4 SDK 下载:https://dotnet.microsoft.com/en-us/download/dotnet-framework/thank-you/net48-developer-pack-offline-installer

  3. 以管理员身份运行CMD,跳转到 SDK工具目录

    cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools"

  4. 使用命令 全局注册插件dll

    #"gacutil.exe /l" 查看所有注册成功的组件
    #"gacutil.exe /l 程序集名称" 查看指定程序集注册状态
    #"gacutil.exe /u 程序集名称" 卸载已注册的程序集
    #cmd下执行
    gacutil.exe /i 插件路径
    #powershell下执行
    ./gacutil.exe /i
    #插件的路径 最好带双引号,不要使用中文路径

  1. 手动注册

手动注册直接在插件中选择 程序集dll文件即可,如果运行出现错误,可将Dll文件放到运行程序根目录下再次手工选择 注册

最新文章

  1. Node.js入门(一)
  2. No.007:Reverse Integer
  3. JDK8新特性之接口
  4. CF-Approximating a Constant Range
  5. 35个jQuery小技巧!
  6. pod lib lint 遇到的问题
  7. 360你吃屎啊你,hao123,12345等等
  8. Andorid源码系列:View的onTouchEvent()与performClick(),performLongClick()调用时机解析
  9. android 常用方法集合
  10. gitlab升级和迁移
  11. sql查询统计
  12. 交叉编译jpeglib遇到的问题
  13. (转)scikit-learn主要模块和基本使用方法
  14. SpingBoot —— 多线程
  15. 使用Nginx限制同一IP的访问频率
  16. CCFlow SDK模式开发(有比较详细的代码,以服务的形式与ccflow数据库进行数据交互)
  17. AngularJs 指令实现选项卡
  18. django 将model转换为字典
  19. 嵌入式linux问题杂锦
  20. 第二百二十二节,jQuery EasyUI,DataGrid(数据表格)组件

热门文章

  1. pie-engine-ai项目jenkins.yaml文件
  2. 关于protobuf报错'tr1/unordered_map' file not found
  3. 使用Tablayout出现标题消失的原因:setupWithViewPager()的大坑
  4. 将excel按照某一列拆分成多个文件
  5. 【Anaconda】Jupyter 中添加 Anaconda 环境
  6. nop4.3 用户权限管理
  7. Characterizing possible failure modes in physics-informed neural network
  8. esxi虚拟机定时创建快照
  9. file类型的input框获取文件
  10. ubuntu添加新硬盘进行分区,并挂载到/home