自定义控件在 控件在 VS 工具箱 中的图标

有时我们在vs2005的工具箱中添加第三方控件时,会发现会有其自定义的图标。
而我们在不作任何处理的情况下,在生成控件并放到工具箱中时,是使用默认的图标,样子有点难看~~

如何自定义图标呢?
我使用的是 ToolboxBitmap属性
使用ToolboxBitmap时需要using System.Drawing;

首先准备一个和你的控件类型同名的bmp文件
比如
public class MyWebControl: WebControl
{
}
类型中,你的bmp文件就必须是MyWebControl.bmp
现在就可以利用ToolBoxBitmap了
 [ToolboxBitmap(typeof(MyWebControl), "MyWebControl.bmp")]
 public class MyWebControl : WebControl{}
MyWebControl.bmp是放在根目录下的
如果你的MyWebControl.bmp放在其它目录下就要这样引用,如放在icon目录中
 [ToolboxBitmap(typeof(MyWebControl), " icon.MyWebControl.bmp")]
编译之后拖到工具箱中试试看.

还有不使用ToolboxBitmap属性的方法
用一个bitmap图片(不能是一个icon图片,嵌入资源)文件
例如你有一个命名空间LemongTreeControl,自定义控件为Bar的项目。

1按照上面图片规则来建立一个命名为Bar.bmp的图片,添加该图片到你的项目,

2把该Bar.bmp的图片设置属性 生成操作设置为"嵌入的资源"

3注意该图片的命名空间必须也是LemongTreeControl

4如果该控件的命名空间和项目的默认命名空间不匹配,你必须把该bitmap图片移到适当的子目录让他们匹配。如果你使用该方法无效,很显然你不能使用该技术来实现你自定义图片,你可以下面ToolboxBitmap属性技术来实现

5.注明我使用直接在根目录中的方式取的工具箱中的图标。

上面简单的技术来实现你的需求,而不需要你去使用ToolboxBitmapAttribute去产生你的类型 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VS风格的ToolBox和QQ的界面很相似,都是有多个栏目,并且这些栏目可以展开和折叠,当鼠标在某个子栏目上时,可以高亮显示,另外在VS风格的ToolBox,点击选项目的时候,要用特殊的颜色标识出来。 1. 创建控件的边框,我在前边的文章也讲过(),直接将代码复制过来,稍做修改即可。 2. 添加滚动条,因为我们的控件只需要垂直的滚动,所以我只只加入一个垂直的滚动条。 3. ToolBox包含多个Category,我们不但要创建Category类,还要创建这个类的集合。 4. 每一个Category包含多个Item,我们不但要创建ToolBoxItem类,还要创建这个类的集合。 5. 重载OnPaint方法,绘制控件的内容,在绘制的时候要注意滚动条的当前值,由于采用了双缓冲机制,所以每次总是将所有的内容重绘一次,不考虑ClipRect。 6. 写一个方法,根据鼠标的坐标计算出鼠标指向的Item或者Category,这个方法是这个控件的核心。 7. 重载OnMouseMove方法,当鼠标指向某个Item的时候,高亮显示出来。 8. 重载 OnMouseDown方法,当鼠标在某个Item上按下的时候,用指定的颜色标识出来,如果鼠标按下的地方是一个Category,根据当前的情况展开或者时折叠这个category。 9. 计算控件当前状态的内容的总的高度,用于设置滚动条的可见与不可见。 10. 暴露一个属性,用于为用户提供当前选的Item。 11. 声明一个ItemChanged事件,便于用户在选择另一个Item时添加处理的代码。 实现了上述的内容,这个控件也就基本完成了。由于代码并不复杂,我就不将代码列出来讲解了,我将提供代码的下载,大家在看代码的时候,如有不明白的地方,可以参考我前面的控件教程。因为只花了几个小时写的这个控件,难免还有一些问题,请大家指出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值