【问题标题】:Winforms C# - Legacy Project Visual .NET 2003: Custom Extender Provider not shown in ToolboxWinforms C# - 旧项目 Visual .NET 2003:自定义扩展器提供程序未显示在工具箱中
【发布时间】:2018-04-30 03:24:24
【问题描述】:

我创建了一个自定义 Extender Provider 以应用于我的所有标签:一个从 Component 继承并实现 IExtenderProvider 的类。

它编译正确,没有错误。然后我去工具箱,但它没有显示。

我已经重新启动了VS,但它不起作用。 我还在另一个单独的程序集中创建了这个扩展器提供程序类,对其进行编译,然后按照here 的说明添加对我想使用它的其他程序集的引用,但没有成功,它说:

这个类需要被打包到一个单独的程序集中 使用它来组装。

有什么想法吗?

【问题讨论】:

  • 你能明确地将它添加到工具箱吗?
  • @Fildor 我试过了,但我不知道怎么做。从工具箱中单击鼠标右键,然后从上下文菜单中选择“添加/删除项目...”。它会打开自定义工具箱对话框窗口,其中包含两个选项卡“.Net Framework Components”和“COM Components”以及一个浏览按钮,但没有成功。
  • 听起来很愚蠢,但是“您是否尝试过将其关闭再打开”? (退出VS并重新启动)
  • @Fildor 是的,我已经完成了,但它不起作用。我不明白。例如,在 Visual Studio 2015 中,我做了相同的示例,它显示在工具箱中,但在 Visual .NET 2003 中没有显示。也许它需要手动做,但我不知道怎么做。
  • 我想知道为什么您在“添加/删除项目”对话框中看不到它。不确定您是否需要额外的措施来使其在 2003 年而不是 2015 年发挥作用......

标签: c# winforms components visual-studio-2003 iextenderprovider


【解决方案1】:

最后我通过以下步骤解决了:

  1. 在一个单独的程序集中(与您使用它的地方不同),一个类库项目,创建一个类并在那里实现您的扩展器提供程序。使该类继承自 System.ComponentModel.Component 并实现 IExtenderProvider。
  2. 一旦实现,编译它。您将获得您的 dll。
  3. 在您使用它的程序集中添加一个引用,该引用指向包含您的扩展器提供程序的类库。
  4. 要在工具箱中显示您的扩展程序提供程序,请单击鼠标右键并在上下文菜单中选择“添加/删除项目...”,将显示自定义工具箱对话框窗口。
  5. 在自定义工具箱对话框窗口中,您将看到两个选项卡“.Net Framework 组件”和“COM 组件”。在“.Net Framework Components”中单击浏览按钮并导航到您的 dll(包含您的扩展程序提供程序的类库)所在的位置并选择它。
  6. 之后,您将立即看到您的扩展程序提供程序出现在“.Net Framework Components”中,选择它并确保它被选中,然后单击“确定”按钮。就是这样,现在您的扩展器提供程序将显示在“组件”组下的工具箱中。
  7. 现在,从您要在其上插入扩展程序提供程序的程序集中打开一个 winform(在设计视图中),然后将扩展程序提供程序拖放到表单中。
  8. 选择您的表单对象,您的扩展器提供程序为其创建对象,然后转到其属性,您将看到在扩展器提供程序中为该组件实现的新属性。如果您没有在扩展器提供程序属性中指定类别属性,它将显示在属性窗口的“其他”类别下。

就是这样。

似乎在旧版本的 Visual Studio 中,如 Visual .NET 2003,扩展程序提供程序不会自动添加到工具箱中,您必须手动添加。在较新版本的 Visual Studio 中,例如 2015(我已经测试过),它会自动为您完成。

【讨论】:

    猜你喜欢
    • 2021-11-05
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多