在Visual Studio中对自定义的设计时属性进行分组设计

3

我之前看到过类似的问题,但不是我需要的答案。

我有一个用户控件,并想在设计时构建可扩展的属性集用于编辑控件。请注意,这不是一组属性,而是类似于“大小”或“位置”属性的属性列表,您可以打开该列表以查看其他属性。这是否可能?如何实现?

谢谢。

1个回答

4
你需要将属性分组到一个类中,然后应用 TypeConverter:
[TypeConverter(typeof(ExpandableObjectConverter))]
public class MyProperties {
  public string Item1 { get; set; }
  public string Item2 { get; set; }
}

然后,您的用户控件将使用该类而不是它包含的各个属性:
public partial class UserControl1 {

  public UserControl1() {
    InitializeComponent();
    MyProperties = new MyProperties();
  }

  public MyProperties MyProperties { get; set; }
}

创建您自己的类型转换器来处理定制情况。

我在我的UserControl中尝试了你提供的代码,但是在设计器中没有看到列出的属性。 - Simon
@Simon 确保重新构建解决方案。你是指哪个设计器?是 UserControl 设计器,还是选择了 UserControl 的窗体? - LarsTech
我一直在重建。我指的是选定了UserControl的表单。我已经在设计器中公开了许多属性,但这个需要分组,因为有许多与同一功能相关的属性。 - Simon
1
@Simon,我更新了我的UserControl示例代码。现在我可以在PropertyGrid中看到一个MyProperties项。 - LarsTech
1
非常感谢您抽出时间进行解释,先生。现在一切都正常了!实例化对象是我犯的错误。(编程101) :) - Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接