【问题标题】:Grouping my custom control properties separately in designer grid在设计器网格中分别分组我的自定义控件属性
【发布时间】:2011-07-12 13:23:17
【问题描述】:

我正在使用用户控件。我创建了自己的控件属性。 现在我想在设计器网格中分别对我自己的属性进行分组。

如何实现?

问候

【问题讨论】:

    标签: c# user-controls propertygrid


    【解决方案1】:

    看,here is your answer。换句话说,在属性上使用Category 属性。

    另外,这里是一篇有用文章的链接 (Custom Design-time Control Features in Visual Studio .NET)。这篇文章相当老了(2003.),但我找不到任何更新的官方文章。另外,我不知道您是否需要任何其他特定功能,但我想这应该是一个不错的起点。

    我试过了,它对我有用:

    public partial class UserControl1 : UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }
    
        [Category("MyOwn")]
        public String MyProperty { get; set; }
    }
    

    但是请注意,当您的用户控件的设计器处于打开状态时,您无法看到您的属性。仅当您的用户控件是另一个表单/控件的一部分并被选中时,自定义属性才会在设计器的属性网格中可见。在设计控件时,您没有设计者访问此类属性的权限。看我上面的图。该表单包含一个用户控件,然后选择了一个用户控件。然后该属性在属性网格上可见。

    另外,确保在 PropertyGrid 中选择了 Categorized:

    【讨论】:

    • 亲爱的,感谢您的快速回复。我已经尝试过了,但没有用。当我添加带有默认类别的 [Category()] 时,它可以正常工作,但是当我尝试使用我自己的类别(例如 [Category("Custom")])时,它不起作用。我正在使用 VS2008。
    • 甚至不在分类模式下(在 propertygrid 上)?
    • 我已经更新了我的答案。我确实使用VS2010,所以我不能在08上尝试这个,但我认为应该没有任何区别。您可以发布所需属性的代码吗?另外,你的属性是什么类型的?
    • 亲爱的 Kornelije Petak,我再次尝试过,但仍然遇到同样的问题,我显示 MyProperty 但不在 MyOwn 或任何其他组中。
    • @Shahzad 你是想创建一个winforms控件还是其他类型的控件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2013-04-13
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2011-05-16
    相关资源
    最近更新 更多