如何在设计模式下将自定义组件添加到表单上时,在表单设计器下方获取图像/图标

本文关键字:表单 方获取 图标 图像 获取 自定义 设计模式 组件 添加 | 更新日期: 2024-07-23 00:41:17

我正在使用Visual Studio 2010、C#和WinForms,并创建了如下自定义组件:

public partial class SlidePanel : Panel 
{
    some code here...
}

因此,它是一个组件类,而不是一个用户控件。

我想要的是当我在windows窗体上拖动我的组件时,在窗体下面获得一个代表我的组件的图标。一个例子是现有的绑定源代码管理-当你将其添加到窗体时,它会在窗体下面(在窗体设计器上)给你一个图标,你可以选择它,然后更改属性。我该怎么做?图标可以是通用图标。

如何在设计模式下将自定义组件添加到表单上时,在表单设计器下方获取图像/图标

因此,它是一个组件类,而不是一个用户控件。

不,两者都不是。它仍然是一个面板控件,您只是自定义了它的行为。如果这个类在您的解决方案中的项目中,那么您将在编译后自动将其添加到工具箱中。在顶部,就在箭头后面。如果没有发生这种情况,那么你的设置就错了。工具+选项、Windows窗体设计器、常规,确保AutoToolboxPopulate设置为True。

若你们真的想要你们所描述的(图标添加在底部),那个么你们需要创建一个派生自Component的类。这是一种非常不同的动物,它不能在形式上有视觉表现。它当然不能像面板一样。请参阅此答案以获取示例。

我知道这已经很晚了,但我只是在读同样的问题,这一个引起了我的兴趣。我想在这里你要做的是在你的窗体上有一个控件,你可以在设计器中收缩它。因此,这将使控件从窗体中消失。通过在窗体下方设置组件,您仍然可以通过选择组件来编辑其属性。

我的想法是尝试一个ControlDesigner。我不确定这是否可行,这不是一个微不足道的解决方案,我现在没有时间研究它,但有两种方法可以。

一:ControlDesiger会让你隐藏属性,所以当你在设计器中设置它们时,它们没有效果,这就是为什么你设置为不可见的控件在设计器中保持可见的原因。阴影属性将没有效果,或者将具有您提供的效果,但在序列化时将更新实际属性。

第二:您实际上可以在控件设计器中动态创建组件,并在添加面板派生控件时将其添加到窗体中。然后,当您在组件中设置属性时,此更改可以在控件中镜像。几年前,我做了一些类似的事情,只是为了浪费时间,但我并没有花太多时间让它正常工作,所以可能不会发生。

只是一些想法

dannyhut