C# 是否可以更改PropertyGrid中显示的文本?
当所选对象是数组时,是否有方法更改PropertyGrid控件中显示的文本(“Item_Type[]数组”) 我喜欢网格显示层次结构中每个项目的方式,但我认为如果可以更改或删除“Item_Type[]Array”文本会更好C# 是否可以更改PropertyGrid中显示的文本?,c#,winforms,C#,Winforms,当所选对象是数组时,是否有方法更改PropertyGrid控件中显示的文本(“Item_Type[]数组”) 我喜欢网格显示层次结构中每个项目的方式,但我认为如果可以更改或删除“Item_Type[]Array”文本会更好 您可以通过使用自定义转换器来实现: public class Test { [TypeConverter(typeof(ConverterArray))] public string[] Property { get; set; } = new[] { "1"
您可以通过使用自定义转换器来实现:
public class Test
{
[TypeConverter(typeof(ConverterArray))]
public string[] Property { get; set; } = new[] { "1", "2", "3" };
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
propertyGrid1.SelectedObject = new Test();
}
}
public class ConverterArray : TypeConverter
{
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
{
if (destType == typeof(string))
return "An array kk?";
return base.ConvertTo(context, culture, value, destType);
}
}
不带转换器的屏幕截图,带有:
要查看和编辑作为可扩展列表的项(以索引作为名称),请从
ArrayConverter
继承转换器
如果需要删除/添加项,则必须实现自定义编辑器(通常,您会将此设置为另一个表单,并使用模态编辑器UITypeEditorEditStyle.modal
):
您可以通过使用自定义转换器来实现这一点:
public class Test
{
[TypeConverter(typeof(ConverterArray))]
public string[] Property { get; set; } = new[] { "1", "2", "3" };
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
propertyGrid1.SelectedObject = new Test();
}
}
public class ConverterArray : TypeConverter
{
public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType)
{
if (destType == typeof(string))
return "An array kk?";
return base.ConvertTo(context, culture, value, destType);
}
}
不带转换器的屏幕截图,带有:
要查看和编辑作为可扩展列表的项(以索引作为名称),请从
ArrayConverter
继承转换器
如果需要删除/添加项,则必须实现自定义编辑器(通常,您会将此设置为另一个表单,并使用模态编辑器UITypeEditorEditStyle.modal
):
是的,有自定义转换器。您必须为返回数组的属性添加属性。是否有示例代码或链接?是的,带有自定义转换器。您必须为返回数组的属性添加属性。您是否有示例代码或链接?但它不再显示层次结构中的项目。在这种情况下,您希望查看索引还是可以使用modal
CollectionEditor
,自定义转换器应继承ArrayConverter
我希望保留原始外观,但不使用“Item_Type[]Array”,谢谢@IvanStoev。我也在使用自定义编辑器(UITypeEditorEditStyle.Modal
-另一个表单)来添加/删除项目,但保留外观(索引为名称和可编辑值)ArrayConverter
确实应该用作基础。但它不再显示层次结构中的项目。您想查看索引还是可以使用modalCollectionEditor
?在这种特殊情况下,自定义转换器应该继承ArrayConverter
我想保留原始外观,但不保留“Item_Type[]Array”感谢@IvanStoev。我使用的是自定义编辑器(UITypeEditorEditStyle.Modal
-另一种形式)也可以添加/删除项目,但为了保留外观(索引为名称和可编辑值)ArrayConverter
确实应该用作基础。