• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

asp.net自定义控件中ToolboxBitmap元数据设置详细说明

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
    在asp.net应用的过程中,少不了的会创建一些自定义服务器控件,但控件完成后,默认的图标是统一的蓝色齿轮的图标,没有个性,也不能很好的直观表示控件的作用,这时我们需要自己添加自定义的工具图标
    自定义图标为16像素宽高,256色的BMP图片,并设置图标文件的BuildingAction(生成操作)属性为嵌入的资源,但我们添加完成后在工具箱里显示不了自定义图标,这与我们类文件的名称空间有关


例一:
    说明:控件未定义名称空间,图标文件名与控件的名称一致
    
    控件集名称为:MyControls.dll
    控件名称为:MyBox(未自定义名称空间)
    图标名称为:MyBox.bmp
    MyBox添加元数据(此结构下也可以不添加元数据,默认会查找MyBox.bmp图标文件,网上大多是这样介绍的)
    <ToolboxBitmap(GetType(MyBox), "MyBox.bmp">
    
    在工具箱中添加此控件,可以看到控件显示了自定义图标

例二:
    说明:控件定义了名称空间:Boxes,图标文件名与控件名一致
   
    控件集名称为:MyControls.dll 
    控件名称为:MyBox
    自定义名称空间:Boxes
    图标名称为:MyBox.bmp
    MyBox添加元数据
    <ToolboxBitmap(GetType(MyBox), "MyBox.bmp">
    
    在工具箱中添加此控件,但这个时候控件显示的是默认的齿轮图标,而不是自定义的MyBox.bmp图标
    
    这个时候我们要做的是重命名原来的MyBox.bmp以适应控件的名称空间:Boxes.MyBox.bmp
    注意上面添加的元数据的图片name不用修改
    这时再添加控件到工具箱中,又可以看到可爱的自定义图标了

例三:
    说明:控件定义了名称空间:Boxes,图标文件名与控件名不相同
   
    控件集名称为:MyControls.dll 
    控件名称为:MyBox
    自定义名称空间:Boxes
    图标名称为:Box.bmp
    MyBox添加元数据
    <ToolboxBitmap(GetType(MyBox), "Box.bmp">
    重命名Box.bmp以适应控件的名称空间:Boxes.Box.bmp
    再添加控件到工具箱中

在MSDN文档中提到:
    ToolboxBitmapAttribute (t, name)
    参数
t
一个 Type,将在它的定义程序集中搜索位图资源。
name
嵌入的位图资源的名称。
备注
此构造函数在定义由 t 参数指定的类型的程序集中搜索嵌入的资源。此构造函数搜索名为 namespace.name 的资源,其中 namespace 是由 t 参数指定的类的定义所在的命名空间。例如,假定 ControlA 是 AssemblyA.dll 中的 NamespaceA 的类,而且已将“MyBitmap.bmp”传递给 name 参数。则构造函数在 AssemblyA.dll 中搜索命名为 NamespaceA.MyBitmap.bmp 的资源。

    在添加的时候最好是手动添加到工具箱,VS自动添加时很奇的不会显示自定义图标,它默认添加的是控件项目下的obj文件夹下的DLL文件,如果你手动添加同一文件,却是会显示自定义图标的!很奇怪的问题啊,有哪位仁兄知道如何解决这个自动添加不能显示自定义图标的问题么?

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETMVC文件上传简单示例发布时间:2022-07-10
下一篇:
ASP.NET2.0编程技巧之用Response对象输出图像发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap