Winforms Designer支持选择类型和控件

时间:2010-02-04 13:01:26

标签: c# winforms visual-studio-2008 windows-forms-designer

我有一个BindingSource的子类,只是为了满足我们的特殊需求而扩展它,我想支持VS2008 Designer。

我有三个属性,我希望得到设计师的支持,其中两个应该设置为表单上的其他Control,一个应设置为Type

在den Designer中显示它们以及设置默认值null非常简单,但是我如何设法让VS选择可用的控件(理想情况下只需要所需类型)和/或Type?< / p>

到目前为止,这是属性的代码,任何提示都是受欢迎的,因为我对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;
    }
}

1 个答案:

答案 0 :(得分:1)

设计器的默认实现已经处理了BindingNavigator和DataGridView属性。属性网格使用组合框来选择与控件类型匹配的控件。你必须在表单上删除一个BindingNavigatorQ1控件,以便在组合框中获得除None之外的任何内容。

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