2024年3月30日发(作者:)

为什么我的自定义控件不能正确地显示在工具箱中?

问题:为什么我的自定义控件不能正确地显示在工具箱中? 回答:

当在 Visual Studio .NET 2003 中为智能设备自定义控件添加设计器支持时,您可能

会碰到以下问题:

在设计时无法将一个图标与控件相关,以便显示在工具箱中

当添加到工具箱中时,该组件变灰

原因

使用独立于控件项目的设计项目。Visual Studio .NET 自动将项目的默认命名空间作

为位图的名称。“默认命名空间”默认为项目名称。这可能会产生问题,因为设计项目的名

称与运行时项目的名称略有差别。

没有设置正确的 ToolBoxItemFilterAttribute 值

解决方案

提供以下示例:Runtime Project:MyProject类名称:s

设计 项目名称: 设计项目中的 BitMap 名称:

设计程序集中的位图名称:— 这样会产生问

题,因为该位图需要以下名称:

1

在以上示例中,将设计项目的默认命名空间设置为“MyProject”而非

“”就可以解决这个问题。

检查程序集中位图名称的最简单方法是运行 ILDASM 并打开 Manifest。该清单的尾

部列出了嵌入式资源。

如果您创建了一个从 Component 类派生的自定义组件,则您的代码必须包括以下

语句,这样您的组件才能出现在工具箱中:

ToolBoxItemFilterAttribute( NETCF ,e)

ToolBoxItemFilterAttribute(

)

,

2