C# Winforms Designer支持选择类型和控件

C# Winforms Designer支持选择类型和控件,c#,winforms,visual-studio-2008,windows-forms-designer,C#,Winforms,Visual Studio 2008,Windows Forms Designer,我有一个BindingSource的子类,它只是为了满足我们的特殊需要而对它进行了一点扩展,我想为VS2008设计器提供支持 我有三个属性,我希望获得设计器的支持,其中两个属性应设置为表单上的其他控件s,一个属性应设置为类型 在den Designer中显示它们以及将默认值设置为null非常容易,但如何让VS选择可用控件(理想情况下仅为所需类型)和或类型s 这是到目前为止的属性代码,欢迎提供任何提示,因为我不知道VS Designer支持的任何内容 public class BindingSou

我有一个BindingSource的子类,它只是为了满足我们的特殊需要而对它进行了一点扩展,我想为VS2008设计器提供支持

我有三个属性,我希望获得设计器的支持,其中两个属性应设置为表单上的其他
控件
s,一个属性应设置为
类型

在den Designer中显示它们以及将默认值设置为null非常容易,但如何让VS选择可用控件(理想情况下仅为所需类型)和或
类型
s

这是到目前为止的属性代码,欢迎提供任何提示,因为我不知道VS Designer支持的任何内容

public class BindingSourceEx
    : BindingSource
{
    [DisplayName("DataSourceType")]
    [Description("Sets the type to bind to.")]
    public Type DataSourceType
    {
        get;
        set;
    }

    [DisplayName("BindingNavigator")]
    [DefaultValue(null)]
    [Description("Sets the BindingNavigatorQ1 to use.")]
    public BindingNavigatorEx BindingNavigator
    {
        get;
        set;
    }

    [DisplayName("DataGridView")]
    [DefaultValue(null)]
    [Description("Sets the DataGridViewQ1 to use.")]
    public DataGridViewEx DataGridView
    {
        get;
        set;
    }
}

设计器的默认实现已经负责BindingNavigator和DataGridView属性。属性网格使用组合框来选择与控件类型匹配的控件。例如,您必须在表单上删除BindingNavigatorQ1控件,才能在组合框中获得除None之外的任何内容


Type属性更难,至少需要一个TypeConverter在类型值和字符串之间进行转换。不太确定这是否应该是一个可设计的属性,您要绑定的类型在设计时肯定还不存在,只有在运行时所有程序集都被编译时才存在。

您能为我提供一个这样的类型转换器的示例代码吗?我喜欢编写类型转换器,就像看牙医一样。只有当它完成后才有乐趣。特别是在这种情况下,在设计时对类型进行根化。谷歌很好用。。。