如何设置自定义控件中ToolboxBitmap的元数据

原创|其它|编辑:郝浩|2009-07-03 11:36:44.000|阅读 924 次

概述:在ASP.net应用的过程中,少不了的会创建一些自定义服务器控件,但控件完成后,默认的图标是统一的蓝色齿轮的图标,没有个性,也不能很好的直观表示控件的作用,这时我们需要自己添加自定义的工具图标。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  在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文件,如果你手动添加同一文件,却是会显示自定义图标的!很奇怪的问题啊,有哪位仁兄知道如何解决这个自动添加不能显示自定义图标的问题么?


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:IT专家网论坛

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP