Winforms C# - 遗留项目 Visual .NET 2003:工具箱中未显示自定义扩展程序提供程序
Winforms C# - Legacy Project Visual .NET 2003: Custom Extender Provider not shown in Toolbox
我已经创建了一个自定义的 Extender Provider 以应用于我的所有标签:class 继承自 Component 并实现了 IExtenderProvider。
编译正确,没有错误。然后我转到工具箱,但它没有显示。
我重启了VS,还是不行。
此外,我在另一个单独的程序集中创建了这个扩展程序提供程序 class,编译它,然后添加了对另一个程序集的引用,我想按照解释 here 使用它,但没有成功,它说:
the class needs to be packaged into a separate assembly from the
assembly using it.
有什么想法吗?
最后我按照以下步骤解决了:
- 在一个单独的程序集(与您使用它的地方不同)中,一个 class 库项目,创建一个 class 并在那里实现您的扩展程序提供程序。使这个 class 继承自 System.ComponentModel.Component 并实现 IExtenderProvider。
- 实现后,编译它。您将获得您的dll。
- 在您使用它的程序集中添加一个指向 class 包含您的扩展程序提供程序的库的引用。
- 要在工具箱中显示您的扩展器提供程序,请单击鼠标右键并在上下文菜单中 select "Add/Remove Items...",将显示自定义工具箱对话框 window。
- 在“自定义工具箱”对话框中 window 您将看到两个选项卡“.Net Framework 组件”和 "COM Components"。在“.Net Framework Components”中单击浏览按钮并导航到您的 dll(class 包含您的扩展程序提供程序的库)所在的位置和 select 它。
- 在那之后,您会立即看到您的扩展程序提供程序出现在“.Net Framework Components”中,select 并确保它被选中,然后单击 'OK' 按钮。就是这样,现在您的扩展器提供程序将显示在 "Components" 组下的工具箱中。
- 现在,从要插入扩展程序提供程序的程序集中打开一个 winform(在设计视图中),然后将扩展程序提供程序拖放到窗体中。
- Select 您表单的一个对象,您的扩展程序提供程序是为其创建的,然后转到它的属性,在那里您将看到在您的扩展程序提供程序中为该组件实现的新属性。如果您没有在扩展程序提供程序 属性 中指定类别属性,它将显示在属性 window.
的 "Misc" 类别下
就这些了。
似乎在旧版本的 Visual Studio 中,如 Visual .NET 2003,扩展器提供程序不会自动添加到工具箱中,您必须手动添加。在 Visual Studio 的较新版本中,例如 2015(我已经测试过),它会自动为您完成。
我已经创建了一个自定义的 Extender Provider 以应用于我的所有标签:class 继承自 Component 并实现了 IExtenderProvider。
编译正确,没有错误。然后我转到工具箱,但它没有显示。
我重启了VS,还是不行。 此外,我在另一个单独的程序集中创建了这个扩展程序提供程序 class,编译它,然后添加了对另一个程序集的引用,我想按照解释 here 使用它,但没有成功,它说:
the class needs to be packaged into a separate assembly from the assembly using it.
有什么想法吗?
最后我按照以下步骤解决了:
- 在一个单独的程序集(与您使用它的地方不同)中,一个 class 库项目,创建一个 class 并在那里实现您的扩展程序提供程序。使这个 class 继承自 System.ComponentModel.Component 并实现 IExtenderProvider。
- 实现后,编译它。您将获得您的dll。
- 在您使用它的程序集中添加一个指向 class 包含您的扩展程序提供程序的库的引用。
- 要在工具箱中显示您的扩展器提供程序,请单击鼠标右键并在上下文菜单中 select "Add/Remove Items...",将显示自定义工具箱对话框 window。
- 在“自定义工具箱”对话框中 window 您将看到两个选项卡“.Net Framework 组件”和 "COM Components"。在“.Net Framework Components”中单击浏览按钮并导航到您的 dll(class 包含您的扩展程序提供程序的库)所在的位置和 select 它。
- 在那之后,您会立即看到您的扩展程序提供程序出现在“.Net Framework Components”中,select 并确保它被选中,然后单击 'OK' 按钮。就是这样,现在您的扩展器提供程序将显示在 "Components" 组下的工具箱中。
- 现在,从要插入扩展程序提供程序的程序集中打开一个 winform(在设计视图中),然后将扩展程序提供程序拖放到窗体中。
- Select 您表单的一个对象,您的扩展程序提供程序是为其创建的,然后转到它的属性,在那里您将看到在您的扩展程序提供程序中为该组件实现的新属性。如果您没有在扩展程序提供程序 属性 中指定类别属性,它将显示在属性 window. 的 "Misc" 类别下
就这些了。
似乎在旧版本的 Visual Studio 中,如 Visual .NET 2003,扩展器提供程序不会自动添加到工具箱中,您必须手动添加。在 Visual Studio 的较新版本中,例如 2015(我已经测试过),它会自动为您完成。