属性窗口中自定义类型的属性 (MS Visual Studio)
本文关键字:属性 MS Visual Studio 窗口 自定义 类型 | 更新日期: 2023-09-27 18:30:47
public class MyClass
{
// Some staff
}
public class MyControl : UserControl
{
public MyClass MyObj { get; set; }
}
我希望MyObj属性能够通过MS Visual Studio的属性窗口进行设置。但是,它像只读属性一样显示为灰色。
我想我应该添加一些设计器属性,但不知道在哪里和哪个。
编辑
最简单的解决方案是从组件继承 MyClass。不需要任何属性。
public class MyClass : Component
试试这是否有效
[TypeConverter(typeof(ExpandableObjectConverter))]
public class MyClass
{
// Some staff
}
public class MyControl : UserControl
{
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Content)]
public MyClass MyObj { get; set; }
}
用户评论后编辑:
这个测试代码按我的预期工作:
public partial class MyControl : UserControl
{
public MyControl()
{
InitializeComponent();
MyObj = new MyClass();
}
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Content)]
public MyClass MyObj { get; set; }
}
[TypeConverter(typeof(ExpandableObjectConverter))]
public class MyClass
{
public string Test { get; set; }
}
再次编辑:
如果您希望属性编辑器的行为像您描述的那样,我可以给您的最简单的解决方案是
public class MyClass : Control // if it must be visible on form
或
public class MyClass : Component // if it must be just a component