0

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

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

我重新启动了VS,它不起作用。此外,我在另一个单独的程序集中创建了这个扩展器提供程序类,编译它,然后添加对我想使用它的其他程序集的引用,如此处所述没有成功,它说:

该类需要与使用它的程序集打包成一个单独的程序集。

有什么想法吗?

4

1 回答 1

0

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

  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(我已经测试过),它会自动为您完成。

于 2017-11-17T08:41:37.853 回答