• 【转】几个常用用户控件的元数据


    [转自]:http://hi.baidu.com/sjbh/blog/item/36d28bc2cfc398110ff4774a.html

    我们说一下如何使自己的控件可以在.net studio中的设计器中使用。
    1 如果在设计器中希望自己的控件改变大小之后能够被重画,需要在控件类的构造函数中使用下面的代码:SetStyle(ControlStyles.ResizeRedraw, true); 另外,如果想使控件的背景色为透明色,也需要类似的代码,例如:SetStyle(ControlStyles.ResizeRedraw | ControlStyles.SupportTransparentBackColor, true);
    2 关于控件类的元数据。为了使设计器能正确地操作我们的控件,必须提供足够的关于元数据(即描述控件自身的数据)。几个常用的元数据包括
    一 关于空间的元数据。常用的是控件默认的事件,默认的属性,控件显示在工具箱上的图标。所谓默认事件,是指当在设计器中双击空间时,要给哪个事件添加事件处理函数。所谓默认属性,是指当我们在设计器中编辑控件的属性时,哪个属性默认被激活。可以在控件类的定义前添加下面的代码指定默认事件和默认属性:
    [DefaultProperty("属性名"),DefaultEvent("事件名"),ToolboxBitmap("路径")]
    另外,ToolboxBitmap元数据也可以是Type的实例,这样,显示在工具箱中的图标就是对应控件的图标。例如:
    [ToolboxBitmap(typeof(Button))]
    二 关于某个事件的元数据。主要是事件的描述信息,即在事件设计器中,当选中对应的事件时,显示在设计器下面的描述本事件的信息。可以在事件的定义前添加下面的代码指定默认事件和默认属性:
    [Description("你自己的描述")]
    三 关于某个属性的元数据。主要包括Category,Description,DefaultValue,Browserable和Editor,其中Category是指本属性显示在设计器中的哪个分类里,Description指当在设计器中选定本属性时,显示在设计器下面的描述本属性的信息。DefaultValue就不用说了吧。至于Browserable,这个元数据太重要了,它指定对应的属性在设计器里是否可见。若设为false,在设计器里就看不到此属性了,因此最好显式把它设成true(默认好像是false )。Editor也是一个很重要的属性,它指定当要给此属性选定值时,应该采用什么编辑器。对于一般类型的属性(例如int,string等),设计器都能给出正确的默认的编辑器,但是如果设计器无法识别属性的类型,那么你就必须指定编辑器(你自己写的类,这些类继承自System.Drawing.Desing名字空间中的几个类,幸运的是,这个名字空间中提供了几个可以直接使用的编辑器,使得对于像图像、字体这样的属性不用自己写编辑器了 )。可以在属性的定义前添加代码指定这些元数据。
    下面是一个例子。
    [Category("Flash"),
        Editor(typeof(FlashTrackBarValueEditor), typeof(UITypeEditor)),
        DefaultValue(0)]

    关于属性还有一点需要注意,如果这个属性和控件的外观有关,那么要在属性的set段里引发重画事件,这样才能使控件得到正确的显示

  • 相关阅读:
    C#执行异步操作的几种方式
    spring boot swagger ui使用 nginx 部署后无法使用问题
    PHP支付宝接口RSA验证
    认证加密算法php hash_hmac和java hmacSha1的问题
    如何实现从 Redis 中订阅消息转发到 WebSocket 客户端
    ffmpeg安装
    nginx静态资源反向代理
    Redis基础知识 之——发布/订阅
    linux下安装git
    php实现无限级分类查询(递归、非递归)
  • 原文地址:https://www.cnblogs.com/splyn/p/1616881.html
Copyright © 2020-2023  润新知